使用邮件命令发送带csv附件的html表格
问题描述:
我有一个csv文件,我想附加。我创建了一个csv的html表格,以及下面的表格的内联显示。如果我不附加文件,脚本运行良好。使用邮件命令发送带csv附件的html表格
cat htmltempfile
<head>
<style>
table {
border-collapse: collapse;
width: 70%;
}
th, td {
padding: 8px;
text-align: left;
border-bottom: 1px solid #ddd;
}
tr:hover{background-color:#dddddd}
</style>
</head>
<body>
<table>
<tr><th>team</th><th>type</th><th>10:15:00</th><th>11:15:00</th><th>12:15:00</th><th>13:15:00</th><th>14:15:00</th><th>15:15:00</th><th>15:30:00</th></tr>
<tr><td>C</td><td>W</td><td>278645</td><td>434543</td><td>4906</td><td>55494</td><td>68232</td><td>7341</td><td>123641</td></tr>
<tr><td>B</td><td>P</td><td>63361</td><td>79405</td><td>75303</td><td>7243</td><td>74224</td><td>7331</td><td>26159</td></tr>
<tr><td>B</td><td>W</td><td>28357</td><td>97934</td><td>1000</td><td>20005</td><td>16875</td><td>2004</td><td>0</td></tr>
<tr><td></td></tr>
</table>
today=$(date +%Y%m%d | tr -d '\n')
emaillist="[email protected]
appname="path/to/csv/file.csv"
htmltempfile="path/to/csv/htmltempfile"
cat "$htmltempfile" | mail -s "$(echo -e "Subject:$today $appname.\nContent-Type: text/html")" $emaillist
#runs fine
cat "$htmltempfile" | mail -s "$(echo -e "Subject:$today $appname.\nContent-Type: text/html")" -a $appname $emaillist
#PROBLEM
同样的文件被连接,但它并没有得到适当的
答
-a将不会为附件的工作作为邮件附件发送。你必须使用“uuencode”来附加文件。
如果你想显示HTML摘要和附件使用如下。
sendEmail() {
BOUNDARY=$(date +%s|md5sum)
BOUNDARY=${BOUNDARY:0:32}
filename=$(basename $appname)
(
echo "From: [email protected]";
echo "To: $emaillist";
echo "Reply-To: [email protected]";
echo "Subject: $today $appname.";
echo "Content-Type: multipart/mixed; boundary=\"$BOUNDARY\"";
echo "";
echo "This is a MIME formatted message. If you see this text it means that your";
echo "email software does not support MIME formatted messages, but as plain text";
echo "encoded you should be ok, with a plain text file.";
echo "";
echo "--$BOUNDARY";
echo "Content-Type: text/html; charset=ISO-8859-1; format=flowed"
echo "Content-Transfer-Encoding: 8bit"
echo "Content-Disposition: inline";
echo ""
cat "$htmltempfile";
echo "";
echo "--$BOUNDARY";
echo "Content-Type: text/plain; name=\"$filename\"";
echo "Content-Transfer-Encoding: 8bit";
echo "Content-Disposition: attachment; filename=\"$filename\";"
echo ""
cat "$appname";
echo "";
echo "--$BOUNDARY--";
) | /usr/sbin/sendmail -t 2>/dev/null
}
today=$(date +%Y%m%d | tr -d '\n')
emaillist="[email protected]
appname="path/to/csv/file.csv"
htmltempfile="htmltempfile"
sendEmail
'echo“this works”| | mail -s“no html”-a myfileGetAttached goeastothis @ address.com'这项工作显示邮件 - 一个很好的作品 – pythonRcpp