我最近购买了一台新电脑,现在我的电子邮件永远不会被发送,并且不会抛出任何例外情况。
有人可以提供一些使用SmtpClient类的样本吗?任何帮助都将非常感激。
谢谢
更新
<小时/> 好的 - 我现在已经添加了凭证。并且可以成功同步发送电子邮件。但我仍然不能异步发送它们。
旧: 尝试同步发送电子邮件后,我收到以下异常:
交易失败。服务器响应是:
5.7.1
<myfriend@hotmails.com>
:拒绝接力访问。
答案 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语句中。