如何将 .docx 和 .doc 文件附加到内存流中的电子邮件?
How to attach .docx and .doc files to the email from memory stream?
我正在 file attachment
到 memory stream
因为 temporary storage
不是一个选项。
这里我做了一个Jpeg
图片附件。我查看了其他文件类型,您可以通过切换 MediaTypeNames
来执行相同的操作,但不幸的是 .doc
和 .docx
不在其中。
我想知道你们中是否有人知道这个特定场合的 package and how to use it
?
//...set up MailMessage, add a bunch of non-file content to it
MemoryStream jpgStream = new MemoryStream();
string filename = uploadedFile.FileName;
System.Drawing.Image theImage = System.Drawing.Image.FromStream(uploadedFile.InputStream);
theImage.Save(jpgStream, System.Drawing.Imaging.ImageFormat.Jpeg);
jpgStream.Seek(0L, SeekOrigin.Begin);
emailMessage.Attachments.Add(new Attachment(jpgStream, filename, System.Net.Mime.MediaTypeNames.Image.Jpeg));
//something extra and send email...
您应该使用 MediaTypeNames.Application.Octet 作为 mime 类型。
感谢 Benoit Gidon
的回答。我再次被证明,你的假设是你最大的敌人。
显然就这么简单,不需要任何其他特殊方法,只要将 file.InputStream 直接放入附件即可,这与其他 S.O 不同。帖子让你相信:
如果有人真的在为它苦苦挣扎,这里是代码:
foreach (HttpPostedFileBase file in fullViewModel.filesCollection)
{
string filename = file.FileName;
msg.Attachments.Add(new Attachment(file.InputStream, filename, MediaTypeNames.Application.Octet));
}
我用 .docx
文档测试了它,其中包含 5000 words
的内容,以及 tables
和 pictures
,它按照它的方式重建在我的 gmail 客户端中。
刚刚测试过,它与 .png
的工作方式相同,因此不需要 PngBitmapDecoder
。
我正在 file attachment
到 memory stream
因为 temporary storage
不是一个选项。
这里我做了一个Jpeg
图片附件。我查看了其他文件类型,您可以通过切换 MediaTypeNames
来执行相同的操作,但不幸的是 .doc
和 .docx
不在其中。
我想知道你们中是否有人知道这个特定场合的 package and how to use it
?
//...set up MailMessage, add a bunch of non-file content to it
MemoryStream jpgStream = new MemoryStream();
string filename = uploadedFile.FileName;
System.Drawing.Image theImage = System.Drawing.Image.FromStream(uploadedFile.InputStream);
theImage.Save(jpgStream, System.Drawing.Imaging.ImageFormat.Jpeg);
jpgStream.Seek(0L, SeekOrigin.Begin);
emailMessage.Attachments.Add(new Attachment(jpgStream, filename, System.Net.Mime.MediaTypeNames.Image.Jpeg));
//something extra and send email...
您应该使用 MediaTypeNames.Application.Octet 作为 mime 类型。
感谢 Benoit Gidon
的回答。我再次被证明,你的假设是你最大的敌人。
显然就这么简单,不需要任何其他特殊方法,只要将 file.InputStream 直接放入附件即可,这与其他 S.O 不同。帖子让你相信:
如果有人真的在为它苦苦挣扎,这里是代码: 我用 刚刚测试过,它与
foreach (HttpPostedFileBase file in fullViewModel.filesCollection)
{
string filename = file.FileName;
msg.Attachments.Add(new Attachment(file.InputStream, filename, MediaTypeNames.Application.Octet));
}
.docx
文档测试了它,其中包含 5000 words
的内容,以及 tables
和 pictures
,它按照它的方式重建在我的 gmail 客户端中。.png
的工作方式相同,因此不需要 PngBitmapDecoder
。