我正在尝试发送附带自定义文件扩展名的附件的电子邮件,例如'file.aaa'。我不知道如何设置它的MIME内容类型。我新建了一个'新的Attachement(stream,null,null)'。但后来得到了亚马逊的“非法文件名file.aaa”例外。
答案 0 :(得分:0)
您必须在电子邮件中指定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);