使用asp.net发送邮件

时间:2014-03-30 21:38:30

标签: c# asp.net

我正在尝试使用免费asp服务器上的asp.net页面中的c#发送邮件。我写了这段代码

public string send_email()
{
    SmtpClient client = new SmtpClient("relay-hosting.secureserver.net", 25);
    string to = "eng.mona.developer@gmail.com";
    client.DeliveryMethod = SmtpDeliveryMethod.Network;
    client.Credentials = new System.Net.NetworkCredential("eng.mona.developer@gmail.com", "XXXXXXX");

    MailAddress fromAddress = new MailAddress("mona.elsayed.shalaby@gmail.com", "Mona ");
    MailMessage message = new MailMessage();
    message.From = fromAddress;
    message.To.Add(to);
    message.Body = "This is Test message";
    message.Subject = "hi";

    client.Send(message); 
    message.Dispose(); 
    return "Email Send";
}

并在web.config中写了这个

<mailSettings>
  <smtp from="eng.mona.developer@gmail.com">
        <network host="relay-hosting.secureserver.net" port="25" userName="eng.mona.developer@gmail.com" password="XXXXX"/>
  </smtp>
  </mailSettings>

但我有一个名为

的错误
  

不允许使用邮箱名称。服务器响应是:抱歉,从您的位置拒绝转发[XX.XXX.XX.XXX](#5.7.1)

任何帮助

3 个答案:

答案 0 :(得分:2)

这是SMTP服务器的安全错误,而不是代码的错误。可能是因为您使用Gmail凭据访问非Gmail的SMTP服务器。

答案 1 :(得分:0)

制作它以便您可以允许从您的服务器中匿名发送电子邮件,然后您可以设置:

    client.UseDefaultCredentials = false; 

    message.From = "noreply@mydomain.com";

和Max Al Farakh说,使用您有权使用的提供的SMTP服务器。

答案 2 :(得分:0)

1)如果你使用web.config <mailsettings>配置(这是正确的!)你不应该以编程方式设置SmtpClient,否则配置将毫无用处!

 SmtpClient client = new SmtpClient();  
 MailMessage message = new MailMessage();  
 message.To.Add(to);  
 message.Body = "This is Test message";  
 message.Subject = "hi";`    

这已经足够了,代码中没有server o from

2)正如Max所说,这不是代码问题:这是一个配置问题使用您的邮件客户端(outlook,thunderbird或任何其他)尝试使用服务器端口用户密码配置,如果这样做,您只需将其复制到标记中。