SmtpClient.SendAsync()不再起作用

时间:2010-05-24 07:59:15

标签: c# .net smtp sendasync

我最近购买了一台新电脑,现在我的电子邮件永远不会被发送,并且不会抛出任何例外情况。

有人可以提供一些使用SmtpClient类的样本吗?任何帮助都将非常感激。

谢谢

更新

<小时/> 好的 - 我现在已经添加了凭证。并且可以成功同步发送电子邮件。但我仍然不能异步发送它们。

旧: 尝试同步发送电子邮件后,我收到以下异常:

交易失败。服务器响应是:

  

5.7.1 <myfriend@hotmails.com>:拒绝接力访问。

2 个答案:

答案 0 :(得分:1)

您可以通过Async()发送邮件。如何表示你应该遵循以下代码,

smtpClient.SendCompleted += new SendCompletedEventHandler(smtpClient_SendCompleted);
smtpClient.SendAsync(mailMessage, mailMessage);

并且,如果您使用异步,则还需要具有事件处理程序,如

static void smtpClient_SendCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
    {
        //to be implemented        
    }

使用此功能,您可以发送邮件。

答案 1 :(得分:0)

您可以先尝试使用同步Send方法验证是否已使用SMTP服务器正确设置了所有内容,并且您没有获得任何例外:

var client = new SmtpClient("smtp.somehost.com");
var message = new MailMessage();
message.From = new MailAddress("from@somehost.com");
message.To.Add(new MailAddress("to@somehost.com"));
message.Subject = "test";
message.Body = "test body";
client.Send(message);

备注:在.NET 4 SmtpClient中实现IDisposable,因此请确保将其包装在using语句中。