如何检查电子邮件是否已成功发送?

时间:2012-01-16 09:13:32

标签: c# winforms

见标题。由于SmtpClient.Send没有返回值,我想知道如何确保电子邮件已成功发送。

这是我到目前为止的代码,它运行正常(来自谷歌):

private void sendMail(string strToAddress, string strFromAddress, string strSubject, string strBody)
{
    // new instance of MailMessage
    MailMessage mailMessage = new MailMessage();

    // Sender Address
    mailMessage.From = new MailAddress(strFromAddress);

    // Recepient Address
    mailMessage.To.Add(new MailAddress(strToAddress));

    // Subject 
    mailMessage.Subject = strSubject;

    // Body
    mailMessage.Body = strBody;

    // format of mail message
    mailMessage.IsBodyHtml = true;

    // new instance of Smtpclient
    SmtpClient mailSmtpClient = new SmtpClient("mail.lablabal.com");

    // mail sent
    mailSmtpClient.Send(mailMessage);
}

1 个答案:

答案 0 :(得分:7)

如果出现立即错误,SmtpClient::Send()会抛出exception。没有办法“跟踪”电子邮件(除非有一些确认链接点击或其他)。在收到邮件之前,您不会保持服务器连接,直到您的smtp服务器成功通过它(或者这样做失败)。