Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 是否可以用长线从Unix向Outlook发送附件?_Email_Unix_Outlook_Sendmail_Email Attachments - Fatal编程技术网

Email 是否可以用长线从Unix向Outlook发送附件?

Email 是否可以用长线从Unix向Outlook发送附件?,email,unix,outlook,sendmail,email-attachments,Email,Unix,Outlook,Sendmail,Email Attachments,我正在尝试将一封带有csv附件的电子邮件从Unix邮箱发送给使用Outlook 2010的收件人。csv有很长的行(大约2000-3000个字符) 该文件在Unix上没有问题,但当收件人收到该文件时,大约每1000个字符就会有额外的感叹号(!)和新行。下面是我尝试过的一些示例代码: outputFile="/tmp/testemail" attachFile="/tmp/test.csv" ( echo "From: sender@somedomain.com" echo "To: rece

我正在尝试将一封带有csv附件的电子邮件从Unix邮箱发送给使用Outlook 2010的收件人。csv有很长的行(大约2000-3000个字符)

该文件在Unix上没有问题,但当收件人收到该文件时,大约每1000个字符就会有额外的感叹号(!)和新行。下面是我尝试过的一些示例代码:

outputFile="/tmp/testemail" 
attachFile="/tmp/test.csv"
(
echo "From: sender@somedomain.com" 
echo "To: receipent@someotherdomain.com"
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

我还尝试过这里列出的不同类型的内容传输编码:。但是似乎没有任何帮助。

Sendmail会打断长行(>990个字符)通过SMTP发送->您应该使用引用的可打印编码发送文件。您可以使用例如
qprint
程序进行转换

引用的可打印编码句柄“太长”行。 您也可以考虑指定使用的字符集(例如ISO-859-1或UTF-8)或U-ASCII将被假定为默认值。
...
echo "Mime-Version: 1.0"
echo "Content-Type: text/csv; charset=utf-8"
echo "Content-Transfer-Encoding: quoted-printable"
echo "Content-Disposition: attachement; filename=test.csv"
echo "" 
qprint -e $attachFile
...

我会尝试直接在excel中打开csv文件——如果它不起作用,也可能是出了什么问题(0x0a与0x0d0a?)。如果有效,请将outlook附带的csv文件发送给您自己。如果有效,请尝试将该邮件与您生成的邮件进行比较。我已经这样做了,我已经尝试以Unix/DOS格式发送,并在记事本/Excel中打开。在Outlook中向自己发送文件效果很好,我尝试比较邮件,但当我保存邮件时,Outlook的保存格式非常奇怪,我只看到很多二进制内容,而不是我原来的邮件格式。谢谢,这似乎是答案,但我没有访问任何其他发送SMTP的工具。您能说出您使用的Unix/Linux发行版吗?它可能有助于提供有用的提示