在以下代码中
public static void Send(SmtpClient smtpClient, MailMessage email)
{
try
{
smtpClient.SendCompleted += (sender, e) =>
{
var x = e.Error; // can't access discarded object
};
smtpClient.SendAsync(email, null);
}
catch // never reach
{
// this works
smtpClient.Send(email);
}
}
答案 0 :(得分:2)
在调用Send之后但在运行异步发送方法之前,已经处理或完成了smtpClient对象。尝试移动传递给Send方法的变量的范围,以便它通过异步执行。
另一个问题是,一次只能执行一个SendAsync调用。您必须实现自己的等待队列才能可靠地使用SendAsync,否则会抛出InvalidOperationException。
答案 1 :(得分:0)
您的邮件可被识别为垃圾邮件。检入垃圾邮件文件夹
答案 2 :(得分:-1)
不确定 - 但尝试在userToken
中传递除null之外的其他内容smtpClient.SendAsync(email, "test");