SendAsync失败的原因是什么?

时间:2010-06-21 18:57:07

标签: c# email

在以下代码中

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);
    }
}

3 个答案:

答案 0 :(得分:2)

在调用Send之后但在运行异步发送方法之前,已经处理或完成了smtpClient对象。尝试移动传递给Send方法的变量的范围,以便它通过异步执行。

另一个问题是,一次只能执行一个SendAsync调用。您必须实现自己的等待队列才能可靠地使用SendAsync,否则会抛出InvalidOperationException。

答案 1 :(得分:0)

您的邮件可被识别为垃圾邮件。检入垃圾邮件文件夹

答案 2 :(得分:-1)

不确定 - 但尝试在userToken

中传递除null之外的其他内容
smtpClient.SendAsync(email, "test");