【问题标题】:Unable to send mail if one mail not present with ASP如果 ASP 不存在一封邮件,则无法发送邮件
【发布时间】:2014-02-13 05:33:52
【问题描述】:

我已经编写了发送时事通讯的代码,一切正常,但是如果列表中的一个电子邮件地址没有退出或域不存在,则会出现问题。

在这种情况下,脚本会立即停止,邮件列表的发送并未完成。

这是我要修改的部分代码。

public static void SendMessage(String sender, String recipient, String message, String object) 
{
    try
    {
        MailMessage mail = new MailMessage(sender, recipient);
        mail.Subject = object;
        mail.IsBodyHtml = true;
        mail.Body = message;
        SmtpClient smtp = new SmtpClient();
        smtp.Host = "my.smtp.com";
        smtp.Send(mail);
    }
    catch (Exception e)
    { throw new Exception("AdminEmail - SendMessage >> recipient: " + recipient + " - generic error: " + e.Message); }
}

希望有人能帮帮我,非常感谢!

【问题讨论】:

  • 嗨,“立即停止”,如:引发异常?这可能是很好的情况。您是否指的是代码中的另一个级别(例如调用者),因为这是发送 1 封电子邮件而不是邮件列表的功能......?

标签: asp.net email smtpclient newsletter


【解决方案1】:

欢迎来到 SO。 从我可以从您的描述中推断出,您没有处理 SendMessage 引发的异常。

在调用者方法中处理异常。或者进行如下所示的脏修复...

这不是真正的修复。但会帮助您理解问题...您必须在调用方法中确定如果 SendMessage 引发异常该怎么办。

public static void SendMessage(String sender, String recipient, String message, String object) 
        {

       try
            {
                MailMessage mail = new MailMessage(sender, recipient);
                mail.Subject = object;
                mail.IsBodyHtml = true;
                mail.Body = message;
                SmtpClient smtp = new SmtpClient();
                smtp.Host = "my.smtp.com";
                smtp.Send(mail);
            }
            catch (Exception e)
            { 
                  //Just log error and continue to process

            }   
    }

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 2014-07-27
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2011-01-06
    • 2018-03-29
    • 2018-02-07
    • 2011-08-09
    相关资源
    最近更新 更多