使用Godaddy SMTP从Windows Azure服务发送邮件
使用以下设置,我无法从本地PC发送邮件。在搜索堆栈溢出许多响应 -使用Godaddy SMTP从Windows Azure服务发送邮件
- 我试着将主机从smtpout.secureserver.net交换到relay-hosting.secureserver.net。哪些没有帮助。 (可能因为在godaddy服务器上托管时必须使用relay-hosting)我的主机是windows azure服务。。
- 我在SO上读到defaultCredentials & enableSSL是互斥的 排他性的。请建议。
- 端口25可以通过几种ISP被阻塞,所以作为替代端口80 可以用于使用http发送邮件。
- System.net.Mail不支持https的godaddy的465端口。
已经尝试了所有这些可能性,我最终要么两个错误 -
- 发送邮件失败 - 无法与远程服务器连接。
- SMTP服务器需要安全连接或客户端不是 进行身份验证。
问题1. 请确切地说,我需要从Windows Azure服务中使用godaddy smtp服务器需要哪些配置?
从本地主机我试图使自签名的证书,由斯科特,这里建议..
问题2:在web.config中从 地址指定,似乎是多余的,因为在MailMessage中,我们必须再次输入地址 。它的目的是什么?
什么最简单的方法来配置Azure中配置IIS使用第三方SMTP服务器使用蔚蓝服务
private void SendMail(MailMessage msg)
{
try
{
var smtp = new SmtpClient();
smtp.Send(msg);
}
catch (SmtpFailedRecipientException exFailed)
{
lblExSendMail.Text = exFailed.Message;
}
}
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="[email protected]">
<network host="smtpout.secureserver.net" port="80" userName="[email protected]" password="xyz-password" />
</smtp>
</mailSettings>
答案1.端口80,而不是使用25为我发送邮件 使用http通道。这适用于本地和Windows Azure。除了主机,port = 80,用户名和密码 - > http以外,防止自己在网络元素smtp中指定任何其他内容。
Ans 2.从web.config中的smtp元素的属性被 MailMessage的无参数构造函数使用。当您要通过普通电子邮件地址发送邮件时,这尤其有用 。
从Windows Azure应用程序发送电子邮件在任何一方,Windows Azure或第三方SMTP服务器上都不需要任何特殊配置。大多数SMTP服务器都设置为使用端口25,这是从Windows Azure发送电子邮件的最简单方式,GoDaddy SMTP服务器也设置为使用端口25,因此您可以轻松完成。任何一方都不需要SSL/certifcate配置。
下面的代码片段是您可以使用在C#应用程序或Windows Azure中直接无需任何配置eith GoDaddy的SMTP服务的最简单的代码:
SmtpClient MySMTPClient;
MailMessage myEmail;
MySMTPClient = new SmtpClient("smtp.secureserver.net", 25);
MySMTPClient.Credentials = new NetworkCredential("<MailID>", "<Password>");
myEmail = new MailMessage(new MailAddress("<sender>"), new MailAddress("<receiver>"));
myEmail.Body = "Email from Windows Azure Application";
myEmail.Subject = "Email from Windows Azure";
try
{
MySMTPClient.Send(myEmail);
}
catch (Exception ex)
{
// Display Exception Details
}
这是如此的简单:
你必须集中SMTP主机,端口,SSL ... 更改SMTP主机上:relay-hosting.secureserver.net 而DELETE端口和SSL,多数民众赞成... 不使用SMTP端口和SMTP SSL真或假
var fromAddress = "[email protected]";
// any address where the email will be sending
var toAddress = "[email protected]";
//Password of your mail address
const string fromPassword = "******";
// Passing the values and make a email formate to display
string subject = TextBox1.Text.ToString();
string body = "From: " + TextBox2.Text + "\n";
body += "Email: " + TextBox3.Text + "\n";
body += "Subject: " + TextBox4.Text + "\n";
body += "Message: \n" + TextBox5.Text + "\n";
// smtp settings
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = "relay-hosting.secureserver.net";
**//Warning Delete =>//smtp.Port = 80;**
**//Warning Delete =>//smtp.EnableSsl = false;**
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.Timeout = 20000;
}
// Passing values to smtp object
smtp.Send(fromAddress, toAddress, subject, body);
这对目标框架4.0上的Godaddy Windows主机起作用