如何通过亚马逊发送带有自定义文件扩展名附件的电子邮件?

Posted

技术标签:

【中文标题】如何通过亚马逊发送带有自定义文件扩展名附件的电子邮件?【英文标题】:How to send email with attachment of self-defined file extension name through Amazon? 【发布时间】:2013-11-15 18:27:37 【问题描述】:

我正在尝试发送带有自定义文件扩展名附件的电子邮件,例如“file.aaa”。我不知道如何设置它的 MIME 内容类型。我新建了一个附件作为“新附件(流,空,空)”。但随后得到了“非法文件名file.aaa”的亚马逊例外。

【问题讨论】:

【参考方案1】:

您必须在电子邮件中指定 MIME 类型。您可以使用application/octet-stream 指定它应作为二进制文件处理,text/plain 用于文本文件,或者您可以将您的设置为application/vnd.yourcompany.yourapplicationname - 以type/vnd.company 开头的任何内容都保留供私人使用。请参阅the Wikipedia article 了解更多信息。


显然,亚马逊同时限制了文件扩展名和 MIME 类型。我会考虑压缩您的自定义格式,因为显然这是允许的。请参阅developer documentation 了解更多信息。

var inputfile = "foobar.aaa";
var tempdir = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString());
var outZipFile = File.GetTempFileName();

File.Move(inputfile, tempdir);
ZipFile.CreateFromDirectory(tempdir, outZipFile);
Directory.Delete(tempdir, true /* delete the file within */);

var attachment = new Attachment(outZipFile, "yourFile.zip", "application/octet-stream");
// send your email
File.Delete(outZipFile);

【讨论】:

问题是我只能找到常见文件扩展名的 MIME 内容类型,如“.txt”、“.image”、“.exe”或任何其他常见扩展名。但是,自定义文件扩展名的正确内容类型是什么?我尝试了 application/octet-stream,它不起作用。我仍然收到非法文件名的 AmazonSimpleEmailException...

以上是关于如何通过亚马逊发送带有自定义文件扩展名附件的电子邮件?的主要内容,如果未能解决你的问题,请参考以下文章

Mime 和 Office365

如何使用mailgun发送带有附件的批量/批量电子邮件?

即使缺少预期的附件,如何生成电子邮件?

如何在 Android 中发送带有文件附件的电子邮件

打开电子邮件附件时如何获取文件名和扩展名

通过 Codeigniter 发送带附件的电子邮件时出错