首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Smtp异常无法发送邮件

Smtp异常无法发送邮件
EN

Stack Overflow用户
提问于 2015-09-04 06:54:17
回答 1查看 621关注 0票数 0
代码语言:javascript
复制
System.Net.Mail.SmtpException: 
Failure sending mail. ---> 
System.Net.WebException: 
Unable to connect to the remote server ---> 
System.Net.Sockets.SocketException: 
No connection could be made because the target machine actively refused it xx.x.xx.xxx:25

我的SMTP主机在IP地址之上,我无法收到邮件,它正在抛出上述异常。

下面是我的代码

代码语言:javascript
复制
mail.From = new MailAddress(email.From.EmailAddress,email.From.FullName);
mail.Subject = email.Subject;
mail.Body = email.Body;
if (email.Body.Contains("<html>"))
{
    mail.IsBodyHtml = true;
}
if (!email.ExcludeAttachment && !string.IsNullOrEmpty(email.AttachmentPath))
    mail.Attachments.Add(new Attachment(email.AttachmentPath));

client = new SmtpClient();
client.Host = ConfigurationSettings.AppSettings["SmtpServer"].ToString();
client.Send(mail);
EN

回答 1

Stack Overflow用户

发布于 2015-09-04 07:28:12

最有可能的原因是您需要对服务器进行身份验证。您可能也需要发送身份验证,看看我的工作代码,看看是否可以调整它以满足您的需要。

也许还值得抓住Telrik Fiddler,看看smtp服务器上的响应是什么。

代码语言:javascript
复制
var client = new SmtpClient
        {
            Host = txtOutGoingServer.Text,
            Port = Convert.ToInt16(txtServerPort.Text),
            EnableSsl = true,
            DeliveryMethod = SmtpDeliveryMethod.Network,
            Credentials = new NetworkCredential(txtUserName.Text, txtPassword.Password),
            Timeout = 20000
        };

 try
       {
           m.To.Add(new MailAddress(dr[0].ToString().Trim()));
           m.From = new MailAddress(txtUserName.Text);
           foreach (var attachment in Attactments)
       {
         m.Attachments.Add(new Attachment(attachment));
       }
         client.Send(m);
         m.To.Clear();
         m.Attachments.Clear();
         Success.Add(dr[0].ToString());
       }
         catch (SmtpException esException)
       {
         Errors.Add("Error sending to " + dr[0].ToString() + " " + esException.Message);
       }
         catch (Exception ex)
       {
         Errors.Add("Error sending to " + dr[0].ToString() + " " + ex.Message);

       }

使用此工作代码的方法是循环遍历电子邮件地址和联系人名称的数据表,因此只需替换dr[].ToString().无论你的价值观是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32391850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档