2012-09-15 74 views
2

使用以下设置,我无法从本地PC发送邮件。在搜索堆栈溢出许多响应 -使用Godaddy SMTP从Windows Azure服务发送邮件

  1. 我试着将主机从smtpout.secureserver.net交换到relay-hosting.secureserver.net。哪些没有帮助。 (可能因为在godaddy服务器上托管时必须使用relay-hosting)我的主机是windows azure服务。
  2. 我在SO上读到defaultCredentials & enableSSL是互斥的 排他性的。请建议。
  3. 端口25可以通过几种ISP被阻塞,所以作为替代端口80 可以用于使用http发送邮件。
  4. System.net.Mail不支持https的godaddy的465端口。

已经尝试了所有这些可能性,我最终要么两个错误 -

  1. 发送邮件失败 - 无法与远程服务器连接。
  2. SMTP服务器需要安全连接或客户端不是 进行身份验证。

问题1. 请确切地说,我需要从Windows Azure服务中使用godaddy smtp服务器需要哪些配置?

从本地主机我试图使自签名的证书,由斯科特,这里建议..

http://weblogs.asp.net/scottgu/archive/2007/04/06/tip-trick-enabling-ssl-on-iis7-using-self-signed-certificates.aspx

问题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> 

回答

2
  1. 答案1.端口80,而不是使用25为我发送邮件 使用http通道。这适用于本地和Windows Azure。除了主机,port = 80,用户名和密码 - > http以外,防止自己在网络元素smtp中指定任何其他内容。

  2. Ans 2.从web.config中的smtp元素的属性被 MailMessage的无参数构造函数使用。当您要通过普通电子邮件地址发送邮件时,这尤其有用 。

1

从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 
} 
0

这是如此的简单:

你必须集中SMTP主机,端口,SSL ... 更改SMTP主机上:relay-hosting.secureserver.netDELETE端口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主机起作用

相关问题