Следующая функция работает отлично:Портирование System.Web.Mail к System.Net.Mail
protected void SendWebMailMessage(string DisplayName, string From, string ReplyTo,
string To, string Subject, string Body, string Attachments)
{
System.Web.Mail.MailMessage msg = new System.Web.Mail.MailMessage();
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver",
"smtpout.secureserver.net");
msg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25);
msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing",
2);
msg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", 1);
msg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendusername", From);
msg.Fields.Add(
"http://schemas.microsoft.com/cdo/configuration/sendpassword",
mailpassword);
msg.To = To;
msg.From = DisplayName + "<" + From + ">";
msg.BodyFormat = MailFormat.Html;
msg.Subject = Subject;
msg.Body = Body;
msg.Headers.Add("Reply-To", ReplyTo);
SmtpMail.SmtpServer = "smtpout.secureserver.net";
SmtpMail.Send(msg);
}
Однако я получаю предупреждение сборки говорит мне, что System.Web.Mail является устаревшим, и что Я должен использовать System.Net.Mail. Поэтому я использовал System.Net.Mail, и я придумал следующую функцию, чтобы заменить мой старый:
protected void SendNetMailMessage(string DisplayName, string From, string ReplyTo,
string To, string Subject, string Body, string Attachments)
{
MailAddress addrfrom = new MailAddress(From, DisplayName);
MailAddress addrto = new MailAddress(To);
MailAddress replytoaddr = new MailAddress(ReplyTo);
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
msg.From = addrfrom;
msg.To.Add(addrto);
msg.ReplyTo = replytoaddr;
msg.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient("smtpout.secureserver.net");
smtp.Credentials = new NetworkCredential(From, mailpassword);
smtp.Send(msg);
}
Я не получаю никаких исключений и ошибок, но мое сообщение не проходит. Может ли кто-нибудь сказать, что я могу делать неправильно? Заранее спасибо.
Вы уверены, что это подлинность? Лучше проверить журнал событий на почтовом сервере, а также в локальной системе? – RobS
У меня нет доступа к журналам почтового сервера. Это размещенный почтовый сервер. Однако, если он не аутентифицировался правильно, я бы ожидал, что метод System.Net.Mpt.CliptClient.Send() выдаст исключение, например System.Web.Mail.SmtpMail.Send() выдает исключение, когда аутентификация не успешный. –
Я тестирую аналогичную реализацию (я только что перешел на System.Net.Mail тоже) увидит, получаю ли я ту же проблему – RobS