我想发送带附件的邮件,下面是代码,邮件是发送了,但是附件上虽然显示了文件名,但是实文件并没有添加上
PARAM_ATTACH1="/work/iyec/TEST.csv"
PARAM_ZIP="TEST.CSV"
PARAM_ZIP_DIR="/work/iyec/"
zip -j ${PARAM_ZIP}.zip ${PARAM_ATTACH1}
##
MAIL_LST="/ryu1/common/rls/param/iyec_teijyo_check_mail.lst"
MAIL_FROM=`grep "MAIL_FROM" ${MAIL_LST} | awk -F"=" '{print $2}' | sed 's/"//g'`
MAIL_TO=`grep "MAIL_TO" ${MAIL_LST} | awk -F"=" '{print $2}' | sed 's/"//g'`
MAIL_TITLE=`grep "MAIL_TITLE" ${MAIL_LST} | awk -F"=" '{print $2}' | sed 's/"//g'`
#
echo "test。" >> ${MAIL_BODY}
cp /dev/null ${HOBUN_FILE_TEMP}
SYS_DATE_TITLE=`date "+%Y""%m%d %H"":%M"":%S"`
echo "From: ${MAIL_FROM}" > ${HOBUN_FILE_TEMP}
echo "To :${MAIL_TO}" >> ${HOBUN_FILE_TEMP}
echo "Subject :`echo "${MAIL_TITLE}_${SYS_DATE_TITLE}" | iconv -f UTF-8 -t ISO-2022-JP | base64 -w0 | xargs printf '=?iso-2022-jp?B?%s?='`" >> ${HOBUN_FILE_TEMP}
echo "MIME-Version: 1.0" >> ${HOBUN_FILE_TEMP}
echo "Content-type: multipart/mixed; boundary=${MAIL_BOUNDARY}" >> ${HOBUN_FILE_TEMP}
echo "Content-Transfer-Encoding: 7bit" >> ${HOBUN_FILE_TEMP}
echo "--${MAIL_BOUNDARY}" >> ${HOBUN_FILE_TEMP}
echo "Content-Type: text/plain; charset=ISO-2022-JP-2" >> ${HOBUN_FILE_TEMP}
echo "Content-Transfer-Encoding: 7bit" >> ${HOBUN_FILE_TEMP}
echo "" >> ${HOBUN_FILE_TEMP}
cat ${MAIL_BODY} | tr -d "\015" | iconv -f UTF-8 -t ISO-2022-JP-2 >> ${HOBUN_FILE_TEMP}
echo "" >> ${HOBUN_FILE_TEMP}
echo "--${MAIL_BOUNDARY}" >> ${HOBUN_FILE_TEMP}
echo "Content-type: application/zip;" >> ${HOBUN_FILE_TEMP}
echo " name=${PARAM_ZIP}.zip" >> ${HOBUN_FILE_TEMP}
echo "Content-Transfer-Encoding: base64" >> ${HOBUN_FILE_TEMP}
echo "Content-Disposition : attachment;" >> ${HOBUN_FILE_TEMP}
echo "filename=${PARAM_ZIP_DIR}/${PARAM_ZIP}.zip" >> ${HOBUN_FILE_TEMP}
echo "" >> ${HOBUN_FILE_TEMP}
cat ${PARAM_ZIP_DIR}/${PARAM_ZIP}.zip | base64 >> ${HOBUN_FILE_TEMP}
echo "--${MAIL_BOUNDARY}--" >> ${HOBUN_FILE_TEMP}
echo "sendmail -f ${MAIL_FROM} -v -i ${MAIL_TO} < ${HOBUN_FILE_TEMP}" >> ${LOG_FILE}
sendmail -f ${MAIL_FROM} -v -i ${MAIL_TO} < ${HOBUN_FILE_TEMP} 1>> ${LOG_FILE} 2>> ${LOG_FILE}
RETCOD=$?
rm -f ${MAIL_BODY} >> ${LOG_FILE}
rm -f ${HOBUN_FILE_TEMP} >> ${LOG_FILE}
if [ $RETCOD -eq 0 ]
then
echo "正常終了" >> ${LOG_FILE}
logJobResultMessage 0
else
echo "異常終了" >> ${LOG_FILE}
logJobResultMessage 1
fi
测试结果‘
试一下用mime-construct来实现呢
不知道你这个问题是否已经解决, 如果还没有解决的话:hostname thaad.xyz
echo "thaad.xyz" > /etc/hostname
echo "127.0.0.1 thaad.xyz" >> /etc/hosts
yum install -y sendmail dovecot
sed -i "s/Addr=127.0.0.1/Addr=0.0.0.0/" /etc/mail/sendmail.cf
echo "disable_plaintext_auth = no" >> /etc/dovecot/dovecot.conf
echo "mail_location = mbox:~/mail:INBOX=/var/spool/mail/%u" >> /etc/dovecot/dovecot.conf
echo "protocols = pop3" >> /etc/dovecot/dovecot.conf
echo "ssl = no" >> /etc/dovecot/dovecot.conf
echo "To:qq.com RELAY" >> /etc/mail/access
systemctl enable sendmail.service --now
systemctl enable dovecot.service --now
adduser thaad
echo 'thaad:000000' | chpasswd
chmod 600 /var/spool/mail/thaad