1

我想用我的网络应用程序发送电子邮件。它发布在机架空间专用服务器上,但我使用 GoDaddy 的 SMTP 服务器发送电子邮件。

我得到的错误是:

System.Net.Mail.SmtpFailedRecipientException:不允许使用邮箱名称。服务器响应是:对不起,从您的位置 [xx.xx.xxx.xx] 中继被拒绝(#5.7.1)

这是我的代码

SmtpClient client = new SmtpClient("relay-hosting.secureserver.net", 25); 
string to ="rpanchal@itaxsmart.com"; 
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.Credentials = new System.Net.NetworkCredential("EmailId@domain.com","**");

MailAddress fromAddress = new MailAddress("myEmailId@domain.com", "CompanyName"); 
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";

我应该在专用服务器上进行任何配置吗?

4

4 回答 4

2

你在本地测试吗?如果是,那么您的 SMTP 服务器可能不允许中继。不要担心,当您部署应用程序时不会有任何问题。

于 2012-07-09T06:06:34.987 回答
0

如果您使用 RackSpace 进行托管,您应该使用 SMTP RackSpace 推荐的从他们的服务器发送。不幸的是,如果您从 go Daddy Shared 或 4GH 托管发送,您只能使用 relay-hosting.secureserver.net。

于 2012-07-10T15:45:24.557 回答
0

开始尝试更改您的端口 465 而不是 25。

或者请记住,中继托管非常有限,每天只能发送 250 封电子邮件,而且接受远程连接不是那么容易。检查是否可以使用 SSL 连接。

于 2013-05-28T19:52:42.880 回答
0

就是这么简单:

您必须专注于 smtp 主机、端口、ssl ... 将 smtp 主机更改为:relay-hosting.secureserver.net删除 端口ssl,仅此而已... 不要使用 smtp 端口和 smtp ssl true 或 false

    var fromAddress = "mailfrom@yourdomain";
    // any address where the email will be sending
    var toAddress = "mailto@yourdomain";
    //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);
于 2016-08-20T20:25:58.480 回答