700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c# 发送邮件保存服务器 c#-使用SmtpClient时如何保存电子邮件而不是发送电子邮件?...

c# 发送邮件保存服务器 c#-使用SmtpClient时如何保存电子邮件而不是发送电子邮件?...

时间:2021-09-22 10:45:08

相关推荐

c# 发送邮件保存服务器 c#-使用SmtpClient时如何保存电子邮件而不是发送电子邮件?...

c#-使用SmtpClient时如何保存电子邮件而不是发送电子邮件?

我正在使用SmtpClient发送带有附件的电子邮件。但是,对于某些批次,我们需要以某种方式保存MailMessage而不是发送它们。然后,我们正在考虑/希望将邮件手动上传到用户的草稿文件夹。

是否可以保存附件完整的这些消息(不可能,我想过)。 或者将邮件上传到用户帐户中的文件夹?

如果有人对此有任何经验,我将非常感谢您的帮助或指导。

user17510 asked -07-14T02:17:56Z

5个解决方案

73 votes

在中进行测试时,我们将电子邮件保存到文件夹中,而不是通过电子邮件服务器发送。 也许您可以为批次更改这样的2965463549159159670784设置?

附加信息:

MSDN:元素(网络设置)

配置SmtpClient以将电子邮件拖放到磁盘上的文件夹中

Leah answered -07-14T02:18:39Z

12 votes

以及其他答案的SpecifiedPickupDirectory信息,如果您想确保将电子邮件发送到相对于站点根目录的文件夹-方便在不知道路径的构建服务器上进行测试-您可以添加快速检查 在您的电子邮件发送代码中:

SmtpClient client = new SmtpClient();

...

// Add "~" support for pickupdirectories.

if (client.DeliveryMethod == SmtpDeliveryMethod.SpecifiedPickupDirectory && client.PickupDirectoryLocation.StartsWith("~"))

{

string root = AppDomain.CurrentDomain.BaseDirectory;

string pickupRoot = client.PickupDirectoryLocation.Replace("~/", root);

pickupRoot = pickupRoot.Replace("/",@"\");

client.PickupDirectoryLocation = pickupRoot;

}

并且您的测试将如下所示(确保您使用App_Data,以便IIS可以写入该文件夹):

// Arrange - get SitePath from AppDomain.Current.BaseDirectory + ..\

string pickupPath = bine(SitePath, "App_Data", "TempSmtp");

if (!Directory.Exists(pickupPath))

Directory.CreateDirectory(pickupPath);

foreach (string file in Directory.GetFiles(pickupPath, "*.eml"))

{

File.Delete(file);

}

// Act (send some emails)

// Assert

Assert.That(Directory.GetFiles(pickupPath, "*.eml").Count(), Is.EqualTo(1));

Chris S answered -07-14T02:19:04Z

7 votes

这可以帮助-将Save()功能添加到.Mail.MailMessage

主要思想是对MailMessage进行扩展,通过反射来创建save方法。

Avram answered -07-14T02:19:29Z

6 votes

您可以在.Mail/app.config文件中使用System.Web.Mail设置进行配置。

此外,这是一个链接,其中包含有关从System.Web.Mail迁移到.Mail的信息。

dotjoe answered -07-14T02:19:53Z

1 votes

错误还需要在某些版本的框架中添加作为解决方法。 因此,完整的版本如下所示:

devjin answered -07-14T02:20:15Z

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。