【发布时间】:2013-11-15 18:27:37
【问题描述】:
我正在尝试发送带有自定义文件扩展名附件的电子邮件,例如“file.aaa”。我不知道如何设置它的 MIME 内容类型。我新建了一个附件作为“新附件(流,空,空)”。但随后得到了“非法文件名file.aaa”的亚马逊例外。
【问题讨论】:
我正在尝试发送带有自定义文件扩展名附件的电子邮件,例如“file.aaa”。我不知道如何设置它的 MIME 内容类型。我新建了一个附件作为“新附件(流,空,空)”。但随后得到了“非法文件名file.aaa”的亚马逊例外。
【问题讨论】:
您必须在电子邮件中指定 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);
【讨论】: