我正在尝试使用免费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)
任何帮助
答案 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或任何其他)尝试使用服务器端口用户密码配置,如果这样做,您只需将其复制到标记中。