這裏是我的電子郵件類:
public class Email
{
public enum MailAddressType
{
From = 1,
Bcc
}
private static MailAddress _from = null;
public static void SendEmail(string to, string subject, string body)
{
SendEmail(to, subject, body, From, string.Empty);
}
public static void SendEmail(string to, string subject, string body, string from)
{
SendEmail(to, subject, body, from, MailAddressType.From);
}
public static void SendEmail(string to, string subject, string body, string addresses, MailAddressType addressType)
{
MailAddress from = From;
string bcc = string.Empty;
if (MailAddressType.From == addressType)
{
from = new MailAddress(addresses);
}
else
{
bcc = addresses;
}
SendEmail(to, subject, body, from, bcc);
}
private static void SendEmail(string to, string subject, string body, MailAddress from, string bcc)
{
MailMessage message = new MailMessage();
message.From = From;
message.To.Add(to);
if (!string.IsNullOrEmpty(bcc))
{
message.Bcc.Add(bcc);
}
message.ReplyTo = from;
message.Subject = subject;
message.Body = HttpContext.Current.Server.HtmlEncode(body);
SmtpClient smtp = new SmtpClient();
smtp.Send(message);
}
public static MailAddress From
{
get
{
if (null == _from)
{
SmtpSection section = (SmtpSection)ConfigurationManager.GetSection("system.net/mailSettings/smtp");
string address = section.From;
string displayName = ConfigurationManager.AppSettings["fromEmailDisplayName"];
_from = new MailAddress(address, displayName);
}
return _from;
}
}
}
這裏是相關的web.config設置:
<appSettings>
<add key="fromEmailDisplayName" value="Firstname Lastname"/>
</appSettings>
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="[email protected]">
<network host="relay-hosting.secureserver.net" />
</smtp>
</mailSettings>
</system.net>
對我來說,關鍵是 「message.From =從」 和「消息。 ReplyTo = from「。 GoDaddy似乎希望郵件來自您域中的地址。因此,對於聯繫人頁面,使用您的默認電子郵件地址作爲發件人並將發件人設置爲回覆。之後,電子郵件通過罰款。
我在使用'relay-hosting.secureserver.net'作爲'smtpClient.Host'時遇到了問題。有時需要很長時間才能發送,而其他人則會發送異常:「郵箱名稱不允許,服務器響應是:對不起,中繼拒絕您的位置」。將我的主機更改爲'smptout.secureserver.net'解決了此問題,並允許在幾秒鐘內發送郵件。非常感謝:D +1 – 2013-01-03 21:53:57
godaddy對其電子郵件基礎架構進行了一些更改。您可以在不同的數據中心創建您的電子郵件帳戶。所以你可以選擇美國,歐洲或亞洲的服務器。出於這個原因,你需要爲你的地區使用一個smtp服務器。像「smtpout.europe.secureserver.net」 – 2013-06-19 12:49:45
我的問題是港口25.非常感謝建議端口3535.工作就像一個魅力! – curiousBoy 2016-08-01 16:18:47