2014-07-17 42 views
0

我試圖發送一封電子郵件,其中包含一個csv附件從Unix盒到使用Outlook 2010的收件人。csv有非常長的行(大約2000 - 3000個字符)。可能發送附件從Unix到Outlook長行?

的文件是罰款在Unix上,但是當收件人收到的文件有額外的感嘆號(!),新線約每1000個字符。下面是一些示例代碼,我已經試過:

outputFile="/tmp/testemail" 
attachFile="/tmp/test.csv" 
(
echo "From: [email protected]" 
echo "To: [email protected]" 
echo "Subject: Test" 
echo "Mime-Version: 1.0" 
echo 'Content-Type: multipart/mixed; boundary="GvXjxJ+pjyke8COw"' 
echo "Content-Disposition: inline" 
echo "" 
echo "--GvXjxJ+pjyke8COw" 
echo "Content-Type: text/plain" 
echo "Content-Disposition: inline" 
cat $outputFile 
echo "" 
echo "--GvXjxJ+pjyke8COw" 
echo "Content-Type: text/csv" 
echo "Content-Disposition: attachement; filename=test.csv" 
echo "" 
cat $attachFile 
) | /usr/lib/sendmail -t 

我也試圖通過這裏列出的不同類型的內容傳輸編碼的打算:https://en.wikipedia.org/wiki/MIME#Content-Transfer-Encoding。但似乎沒有任何幫助。

+0

我會嘗試直接在Excel中打開csv文件 - 如果它不起作用,或者有可能。它錯了(0x0a與0x0d0a?)。如果有效,請發送一封電子郵件,附帶outlook的csv文件給你自己,如果可以的話,嘗試將你的郵件與你生成的郵件進行比較 –

+0

我已經這麼做了,我試過用Unix/DOS格式發送,在記事本/ Excel中打開。發送文件給自己在Outlook中工作正常,我嘗試比較郵件,但當我保存下來的消息時Outlook有一個非常奇怪的格式保存,我只看到很多二進制的東西,而不是我原來的消息格式。 – user2958068

回答

0

Sendmail打破長行(> 990個字符)通過SMTP發送 - >您應該使用quoted-printable編碼發送文件。您可以使用例如qprint轉換程序。

... 
echo "Content-Type: text/csv" 
echo "Content-Transfer-Encoding: quoted-printable" 
echo "Content-Disposition: attachement; filename=test.csv" 
echo "" 
qprint -e $attachFile 
... 
+0

謝謝,這似乎是答案,但我無法訪問任何其他發送SMTP的工具 – user2958068

+0

您可以命名您使用的Unix/Linux發行版嗎?這可能有助於提供有用的提示。 – AnFi

+0

目前我正在使用Solaris 10 – user2958068

相關問題