我想发送带附件的邮件,下面是代码,邮件是发送了,但是附件没有添加上,而且添加附件的一些设定还显示到了邮件文本里面去了
cd /work/iyec
zip filename.zip filename.txt
##
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 "邮件测试。" >> ${MAIL_BODY}
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 "" >> ${HOBUN_FILE_TEMP}
cat ${MAIL_BODY} | tr -d "\015" | iconv -f UTF-8 -t ISO-2022-JP-2 >> ${HOBUN_FILE_TEMP}
echo "Content-Transfer-Encoding: base64" >> $HOBUN_FILE_TEMP
echo "Content-Type: application/zip; name=filename.zip" >> $HOBUN_FILE_TEMP
echo "Content-Disposition : attachment;filename=filename.zip" >> $HOBUN_FILE_TEMP
echo "" >> $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
邮件测试。
Content-Transfer-Encoding: base64
Content-Type: application/zip; name=filename.zip
Content-Disposition : attachment;filename=filename.zip
后来改成这样就好用了
cd /work/iyec
zip filename.zip filename.txt
##
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 "邮件测试。" >> ${MAIL_BODY}
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 "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=filename.zip" >> $HOBUN_FILE_TEMP
echo "Content-Transfer-Encoding: base64" >> $HOBUN_FILE_TEMP
echo "Content-Disposition : attachment;" >> $HOBUN_FILE_TEMP
echo "filename=/work/iyec/filename.zip" >> $HOBUN_FILE_TEMP
echo "" >> $HOBUN_FILE_TEMP
cat /work/iyec/filename.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
sendmail 带-a参数就可以实现
sendmail -f ${MAIL_FROM} -v -i ${MAIL_TO} -a "附件路径" < ${HOBUN_FILE_TEMP} 1>> ${LOG_FILE} 2>> ${LOG_FILE}
cd /work/iyec
zip filename.zip filename.txt >/dev/null
##
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 "邮件测试。" >> ${MAIL_BODY}
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 "" >> ${HOBUN_FILE_TEMP}
echo "Content-Transfer-Encoding: base64" >> $HOBUN_FILE_TEMP
echo "Content-Type: application/zip; name=filename.zip" >> $HOBUN_FILE_TEMP
echo "Content-Disposition : attachment;filename=filename.zip" >> $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 "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
不知道你这个问题是否已经解决, 如果还没有解决的话: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