我测试的所有电子邮件地址的SmtpFailedRecipientsException

时间:2017-02-20 02:00:11

标签: c# email smtp smtpclient

我正在使用此代码发送电子邮件:

app.use(express.static(path.join(__dirname, 'dist')));

我们的问题是收件人只有一个,而且邮箱确实存在。但是,当调用smtp.Send方法时,抛出以下异常:

        MailMessage mail = new MailMessage();
        SmtpClient smtp = new SmtpClient(_smtpServer, _smtpPort);
        smtp.UseDefaultCredentials = false;
        smtp.Credentials = new System.Net.NetworkCredential(_smtpUser, _smtpPassword);
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        smtp.EnableSsl = _smtpSSL;
        mail.From = new MailAddress(_fromEmail);
        mail.To.Add(new MailAddress(toEmail, toName));
        if (!String.IsNullOrEmpty(ccEmail))
            mail.CC.Add(new MailAddress(ccEmail, ccName));
        mail.Subject = subject;
        mail.Body = body;
        mail.Priority = MailPriority.High;
        if (attachment != null)
        {
            if (String.IsNullOrEmpty(fileName))
                fileName = "Adjunto " + DateTime.Today.ToString("yyyyMMddHHmmss" + ".pdf");
            mail.Attachments.Add(new Attachment(attachment, fileName, "application/pdf"));
        }
        smtp.Send(mail);

        return true;

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

听起来您正试图通过smtp服务器中继电子邮件,而该服务器不允许您这样做。

如果您要发送一个SMTP服务器希望代表接收邮件的地址(如果您在要发送到的域的MX记录上执行nslookup,则会显示该地址),那么它通常应该工作。但是,如果邮箱不存在,某些邮件服务器将不接受该邮件。我相信这是你的服务器在这种情况下告诉你的。其他人会接受并丢弃它而不会出错,因此如果您是垃圾邮件发送者,则无法使用该错误来确定虚构的电子邮件地址是否有效。

如果您发送的SMTP服务器不是预期的地址,那么您要求它转发电子邮件。除非经过身份验证并具有相应的权限,否则大多数服务器通常都不允许这样做。