【问题标题】:sending mail using asp.net使用 asp.net 发送邮件
【发布时间】:2014-04-03 19:35:17
【问题描述】:

我正在尝试在免费的 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)

任何帮助

【问题讨论】:

  • relay-hosting.secureserver.net 无法从gmail.com 发送电子邮件
  • 我测试了雅虎邮件,出现同样的错误
  • relay-hosting.secureserver.net 无法从它不拥有的域发送电子邮件。您需要联系您的邮件服务器管理员并询问它能够发送什么。
  • 大多数人在发布已被问过一百万次的问题之前先在这里搜索该网站..

标签: c# asp.net


【解决方案1】:

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

【讨论】:

  • 我可以测试哪些邮件
  • 我猜这是 Godaddy SMTP 服务器,他们应该给你访问凭据。
  • 我没听明白,请你说的更清楚些
  • 您在代码中使用的主机“relay-hosting.secureserver.net”实际上不是免费的,它要求您在 GoDaddy 服务器上拥有一个托管网站才能从中发送邮件。但是,如果您想直接从您的 gmail 发送电子邮件,那么您可以将您的主机用作“smtp.gmail.com”和端口 587。
【解决方案2】:

使您可以允许来自页面所在服务器的匿名电子邮件,然后您可以设置:

    client.UseDefaultCredentials = false; 

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

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

【讨论】:

    【解决方案3】:

    1) 如果您使用web.config &lt;mailsettings&gt; 配置(这是正确的!)您不应该以编程方式设置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 或任何其他),如果可行,您只需将其复制到标签中。

    【讨论】:

      猜你喜欢
      • 2011-06-26
      • 2015-03-18
      • 2011-05-24
      • 2014-08-14
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 2010-12-08
      相关资源
      最近更新 更多