如何使用System.Net.Mail.SmtpClient从AT& T住宅帐户发送电子邮件?

时间:2010-12-12 23:49:44

标签: c# smtpclient

如果这应该在SuperUser上,请道歉,但这似乎是我遇到的.NET配置问题,而不是我的ISP的问题。

我正在尝试使用System.Net.Mail.SmtpClient发送电子邮件。我在AT& T Uverse住宅区,因此出站端口25被完全阻止,发送电子邮件的唯一方法是通过他们认可的SMTP服务器,通过端口465,通过SSL。可以在此处找到设置:https://www.att.com/esupport/article.jsp?sid=KB401570&ct=9000812。当我尝试使用我认为是SmtpClient的正确设置发送电子邮件时,我得到的是“System.IO.IOException:无法从传输连接读取数据:现有连接被远程主机强行关闭。 “

这是我的代码:

var client = new SmtpClient();
client.Host = "smtp.att.yahoo.com";
client.Port = 465;
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("email@bellsouth.net", "password");
client.DeliveryMethod = SmtpDeliveryMethod.Network;

var message = new MailMessage();
message.From = new MailAddress("email@bellsouth.net");
message.To.Add(new MailAddress("foo@gmail.com"));
message.Subject = "Subject";
message.Body = "This is the body";

client.Send(message);

调用client.Send(message)时发生异常。我也尝试过使用App.config,如下所示:

<configuration>
<system.net>
    <mailSettings>
        <smtp deliveryMethod="Network">
            <network
              host="smtp.att.yahoo.com"
              port="465"
              defaultCredentials="false"
               enableSsl="true"
               userName="email@bellsouth.net"
               password="password"
            />
        </smtp>
    </mailSettings>
</system.net>
</configuration>

刚刚离开C#代码:

var client = new SmtpClient();

var message = new MailMessage();
message.From = new MailAddress("email@bellsouth.net");
message.To.Add(new MailAddress("foo@gmail.com"));
message.Subject = "Subject";
message.Body = "This is the body";

client.Send(message);

我应该使用其他设置吗?有没有人成功通过smtp.att.yahoo.com从.NET发送电子邮件?我可以说这在Outlook中有效,所以它不像某个地方有某些块。

编辑:Gmail已关闭,因为我需要能够保持动态地址和gmail强制发件人加入帐户。即我有一个域名,我需要能够从@ mydomain.com发送。

1 个答案:

答案 0 :(得分:2)

我设法使用非安全端口587通过smtp.att.yahoo.com发送电子邮件:

client.Port = 587;
client.EnableSsl = false;
相关问题