繁体   English   中英

如何使用c#为MVC应用程序在eml文件中分配默认的From Account

[英]How to assign default From Account in eml files using c# for a MVC application

在我当前的MVC项目中,需要通过单击带有预先填充的正文和主题的按钮来打开新的Outlook邮件项目。

我使用以下方法来实现该目的:1.使用所需的详细信息(例如“主题”,“邮件正文”等)创建MailItem。2.将SmtpDeliveryMethod用作SpecifiedPickupDirectory并创建eml文件。3.强制用户在Outlook中下载并打开文件

到目前为止,效果很好,EML文件已在Outlook中正确打开,但是用户必须从“发件人”下拉列表中手动选择其邮件帐户。

我的问题是有什么方法可以在EML文件中分配detault From帐户以便在Outlook 2010中打开

我解决它的方法(至少可以说是“ hacky”)是在C#中打开保存的.eml并删除所有from / sender值,然后再将其流式传输到浏览器。

我有一个aspx页面,它接受一堆querystring参数,这些参数可让您自定义.eml输出。 如果没有“发件人”或“发件人”电子邮件地址,则无法保存.eml文件,因此您需要先将其保存-我使用的是虚拟电子邮件帐户。 您可以使用SMTP提取方法MailMessage扩展类保存.eml文件。 然后,我打开保存的文件,查找我的占位符电子邮件地址(在“ X-Sender”标头和“发件人”值中),将其替换为空字符串,然后将更改后的流发送到浏览器。 用户永远不会使用“来自”下拉列表,而只会使用默认帐户。 奇迹般有效。

不,您不能对EML文件执行此操作。 为什么不创建MSG文件? 然后,设置帐户只需要设置几个MAPI属性即可。

您正在使用哪种编程语言? 在运行代码的计算机上安装了Outlook吗?

编辑:

如果您需要创建MSG文件,则可以选择

  1. Outlook对象模型-如果其中一个Outlook文件夹中已有邮件,请调用MailItem.SaveAs(...,olMsg)。
  2. 以编程方式创建MSG文件-已记录格式。
  3. 如果是C ++或Delphi,则可以使用扩展MAPI( OpenImsgOnIStg等)
  4. 兑换及其RDOSession .CreateMessageFromMsgFile方法(返回RDOMail对象,您可以使用对象设置各种属性并调用RDOMail.Save)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM