Вот мой электронный класс:
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 хочет, чтобы сообщение появилось с адреса в вашем домене. Поэтому для контактных страниц используйте свой адрес электронной почты по умолчанию как «От» и установите отправителя как ReplyTo. После этого электронная почта проходит через штраф.
У меня возникали проблемы при использовании 'relay-hosting.secureserver.net' как' smtpClient.Host'. Иногда было много времени для отправки, а другие - при отправке исключения: «Имя почтового ящика не разрешено. Ответ сервера: извините, ретрансляция отказана из вашего местоположения». Изменение моего хоста на 'smptout.secureserver.net' разрешило эту проблему и позволяет отправлять почту за считанные секунды. Большое спасибо: D +1 –
godaddy внесла некоторые изменения в свою инфраструктуру электронной почты. Вы можете создать свою учетную запись электронной почты в разных центрах обработки данных. поэтому вы можете выбрать серверы America, europe или asia. По этой причине вам нужен сервер smtp для вашего региона. как «smtpout.europe.secureserver.net» –
Моя проблема была в порте 25. Большое спасибо за предложение порта 3535. Работал как шарм! – curiousBoy