我正在尝试发送带有csv文件的电子邮件以进行附件。 我执行以下操作,但我只收到一封空csv文件的电子邮件(而不是其内容)。你能帮帮我吗? 我不想使用任何额外的库,所以请不要告诉我使用小马; - )
to="me@exemple.com"
subject='The subject'
from='"Name" <you@exemple.com>'
description ="Desc"
csvnamefile = "/path/to/file/filename.csv"
puts value = %x[/usr/sbin/sendmail #{to} << EOF
subject: #{subject}
from: #{from}
Content-Description: "#{csvnamefile}"
Content-Type: multipart/mixed; name="#{csvnamefile}"
Content-Transfer-Encoding:base64
Content-Disposition: attachment; filename="#{csvnamefile}"
Description : #{description}
EOF]
由于
答案 0 :(得分:1)
谢谢Alex。我可以使用你的信息。 最终的工作结果如下:
binary = File.read(csvnamefile)
encoded = [binary].pack("m") # base64 econding
puts value = %x[/usr/sbin/sendmail #{to} << EOF
subject: #{subject}
from: #{from}
Content-Description: "#{csvnamefile}"
Content-Type: text/csv; name="#{csvnamefile}"
Content-Transfer-Encoding:base64
Content-Disposition: attachment; filename="#{csvnamefile}"
#{encoded}
EOF]
答案 1 :(得分:0)
/usr/sbin/sendmail
对附件一无所知,并根据RFC 5322将电子邮件正文视为单独的US-ASCII文本。要将文件作为附件发送,您需要根据RFC 2045将邮件格式化为MIME邮件。有关此类消息的示例,请参阅Appendix A to RFC 2049。