2009-05-28 151 views
1

当使用以下代码通过IIS6 SMTP向外部电子邮件地址发送电子邮件时我收到一条消息,指出邮件已发送,但它永远不会到达目的地。我使用的System.Net.Mail命名空间和下面的代码:通过IIS SMTP发送电子邮件到外部地址

MailMessage msg = new MailMessage(); 
msg.From = new MailAddress(from); 

foreach (string strTo in to.Split(';')) 
{ 
    if (strTo.Replace(";", "") != string.Empty) 
    msgMailSummary.To.Add(new MailAddress(strTo.Replace(";", ""))); 
} 
msg.Subject = subject; 
msg.Body = body; 

SmtpClient sm = new SmtpClient(); 
sm.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; 
sm.Credentials = new NetworkCredential(tbUsername.Text, tbPassword.Text); 
sm.Host = host; 
sm.Port = port; 
sm.Send(msg); 

我没有在IIS6智能主机的设置,是否有任何明显的或任何提示,技巧,我可以检查出得到这工作?

+0

如果您看一下取件目录,您的电子邮件还在吗? – jgallant 2009-05-28 11:38:40

+0

电子邮件不在拾取目录中。 – Fermin 2009-05-29 12:37:45

回答

0

原来,这是在服务器上的设置配置不正确。

2

嗯,你似乎缺少一个重点线......

msg.To = new MailAddress(to); 
+0

你的权利,他是。嘿嘿 – jgallant 2009-05-28 11:41:33

+0

哈哈,经典:) – cjk 2009-05-28 11:43:09

0

我不知道如果我记得没错,但是我曾经有一个问题,我不能发送电子邮件,因为我从地址不是我的主机允许的。基本上,我最终只能设置ReplyTo和离开未定义(smtp服务器将自己定义它)。尝试一下,它可能会奏效。