【发布时间】:2012-02-15 05:04:51
【问题描述】:
我已经编写了几个从 C# 发送电子邮件的程序。这在winXP中效果很好,但我发现它在Win7中坏了。我的理解是,即使我引用的 SMTP 服务器在另一台计算机上,发送计算机也需要安装 SMTP 服务(而 win7 没有)。
我知道安装第三方 SMTP 服务器是可能的,但是我需要在每台运行我的程序的计算机上安装。相反,我想在我的项目中包含一个临时 SMTP 服务器,我可以完全从代码中使用它来完成相同的工作。有谁知道关于如何在我的项目中包含临时 SMTP 服务器的库(或示例代码)?
这是我的代码:
public static void sendEmail(String[] recipients, String sender, String subject, String body, String[] attachments)
{
MailMessage message;
try
{
message = new MailMessage(sender, recipients[0]);
}
catch (Exception)
{
return;
}
foreach (String s in recipients)
{
if (!message.To.Contains(new MailAddress(s)))
message.To.Add(s);
}
message.From = new MailAddress(sender);
message.Subject = subject;
message.Body = body;
message.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("PRIVATE.PRIVATE.PRIVATE", 25);
smtp.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
//smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = true;
if (attachments.Length > 0)
{
foreach (String a in attachments)
{
message.Attachments.Add(new Attachment(a));
}
}
try
{
smtp.SendAsync(message, null);
【问题讨论】: