C# 在asp.net中,如何将电子邮件写入磁盘而不是发送到实际地址?
如何在磁盘上写入电子邮件(.eml文件),而不是在asp.net中发送到实际地址?提前感谢。我假设您使用的是C# 在asp.net中,如何将电子邮件写入磁盘而不是发送到实际地址?,c#,asp.net,email,C#,Asp.net,Email,如何在磁盘上写入电子邮件(.eml文件),而不是在asp.net中发送到实际地址?提前感谢。我假设您使用的是SmtpClient,因为这是相当标准的 编写自己的SMTP实现(非常简单),将通过它发送的消息写入磁盘,而不是通过电子邮件发送 然后 现在,服务器将截获此发送请求并将其写入磁盘 using (var client = new SmtpClient("somehost")) { client.DeliveryMethod = SmtpDeliveryMethod.Specified
SmtpClient
,因为这是相当标准的
编写自己的SMTP实现(非常简单),将通过它发送的消息写入磁盘,而不是通过电子邮件发送
然后
现在,服务器将截获此发送请求并将其写入磁盘
using (var client = new SmtpClient("somehost"))
{
client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
client.PickupDirectoryLocation = @"C:\somedirectory";
client.Send(message);
}
或者使用配置文件:
<configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:\somedirectory" />
</smtp>
</mailSettings>
</system.net>
</configuration>
您可以将配置为将电子邮件放入配置的目录中,而不是发送电子邮件。要执行此操作,您需要将设置为SpecifiedPickupDirectory
,并设置:
当您使用标准的
SmtpClient
发送电子邮件时,它们现在将保存到指定的目录,而不是实际发送。我绝对建议使用配置文件方法而不是代码方法。在开发过程中,您可能希望将电子邮件写入磁盘,但在部署过程中,您希望将邮件设置转换为使用真正的Smtp服务器。
<configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:\somedirectory" />
</smtp>
</mailSettings>
</system.net>
</configuration>
<system.net>
<mailSettings>
<smtp deliveryMethod="SpecifiedPickupDirectory">
<specifiedPickupDirectory pickupDirectoryLocation="C:\emails" />
</smtp>
</mailSettings>
</system.net>