Đây là lớp học của tôi email:
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;
}
}
}
Và đây là các thiết lập web.config liên quan:
<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>
Đối với tôi, chìa khóa là "message.From = Từ" và "tin nhắn. ReplyTo = từ ". GoDaddy dường như muốn thông báo đến từ một địa chỉ trong miền của bạn. Vì vậy, đối với các trang liên hệ, hãy sử dụng địa chỉ email mặc định của bạn làm Từ và đặt người gửi làm Trả lời. Email đi qua tốt sau đó.
Nguồn
2010-03-21 21:41:41
Tôi gặp sự cố khi sử dụng 'relay-hosting.secureserver.net' làm' smtpClient.Host'. Đôi khi phải mất một thời gian dài để gửi, và những người khác nó sẽ gửi ở tất cả ném một ngoại lệ: "Tên hộp thư không được phép. Phản ứng của máy chủ là: xin lỗi, chuyển tiếp bị từ chối từ vị trí của bạn". Thay đổi máy chủ của tôi thành 'smptout.secureserver.net' đã giải quyết vấn đề này và cho phép thư được gửi trong vài giây. Cảm ơn bạn rất nhiều: D +1 –
godaddy đã thực hiện một số thay đổi với cơ sở hạ tầng email của họ. Bạn có thể tạo tài khoản email của mình ở các trung tâm dữ liệu khác nhau. để bạn có thể chọn máy chủ Mỹ, châu Âu hoặc châu Á. Vì lý do đó bạn cần sử dụng một máy chủ smtp cho khu vực của bạn. như "smtpout.europe.secureserver.net" –
Vấn đề của tôi là cổng 25. Cảm ơn rất nhiều vì đã đề xuất cổng 3535. Làm việc như một sự quyến rũ! – curiousBoy