2013-12-04 3 views
1

У меня есть сайт, использующий C# и sitecore CMS У меня есть форма, которая на представлениях должна отправлять 2 сообщения электронной почты 1 пользователю, который только что заполнил его на основании адреса электронной почты, который они заполнили, и другой - администратору.Ошибки SMTP с электронными письмами Sitecore

Электронное письмо администратора проходит, но пользовательское сообщение не удается, и вместо того, чтобы отправлять сообщения и получать сообщение благодарности, пользователь получает страницу 404.

Ошибка заключается в следующую:

Exception information: 
Exception type: SmtpException 
Exception message: Transaction failed. The server response was: 5.1.2 Recipient address rejected: User unknown 

    Thread information: 
    Thread ID: 18 
    Thread account name: NT AUTHORITY\NETWORK SERVICE 
    Is impersonating: False 
    Stack trace: at System.Net.Mail.RecipientCommand.CheckResponse(SmtpStatusCode statusCode, String response) 
    at System.Net.Mail.SmtpTransport.SendMail(MailAddress sender, MailAddressCollection recipients, String deliveryNotify, SmtpFailedRecipientException& exception) 
    at System.Net.Mail.SmtpClient.Send(MailMessage message) 
    at Wolftrap_CMS.layouts.PromotionRequestForms.PromotionProposalFormSublayout.SendUserEmail() in e:\CCNetWorkingFolders\Wolftrap\WebSite\layouts\PromotionRequestForms\PromotionProposalFormSublayout.ascx.cs:line 139 
    at Wolftrap_CMS.layouts.PromotionRequestForms.PromotionProposalFormSublayout.btnSubmit_Clicked(Object sender, EventArgs e) in e:\CCNetWorkingFolders\Wolftrap\WebSite\layouts\PromotionRequestForms\PromotionProposalFormSublayout.ascx.cs:line 153 
    at System.Web.UI.WebControls.Button.OnClick(EventArgs e) 
    at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) 
    at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) 
    at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) 
    at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) 
    at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) 

Единственное различие между письмами является то, что один, что администратор электронной почты устанавливаются как от введенного адреса пользователя в локальной области, и пользователь электронный -mail - это наоборот. (И другая сюжетная линия, но это вряд ли актуально)

Код для пользователя электронной почты является:

PromotionRequestFormWrapper wrapper = new PromotionRequestFormWrapper(Sitecore.Context.Item); 
     MailMessage mail = new MailMessage(); 

     mail.From = new MailAddress(ConfigurationManager.AppSettings["EmailReminder.FromAddress"]); 

     mail.To.Add(txtContactEmail.Text); 
     mail.Subject = fieldReplace(wrapper.UserEmailSubjectLine); 

     mail.IsBodyHtml = true; 

     string msg = fieldReplace(wrapper.UserEmailText); 

     mail.Body = msg; 

     SmtpClient smtp = new SmtpClient(); 
     smtp.Host = Sitecore.Configuration.Settings.MailServer; 
     smtp.Credentials = new System.Net.NetworkCredential(Sitecore.Configuration.Settings.MailServerUserName, Sitecore.Configuration.Settings.MailServerPassword); 
     smtp.Port = Sitecore.Configuration.Settings.MailServerPort; 
     smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
     smtp.Send(mail); 

Хотя это проблема сервера, так как адрес электронной почты пользователя и последующее спасибо страницы работы мелкий локально, но не один раз, когда код удаляется удаленно.

Какие настройки могут приводить к такой ошибке, основанной только на различиях в получателе и отправителе электронной почты?

ответ

1

Похоже, ваш SMTP-сервер разрешает отправлять электронные письма на локальный адрес электронной почты, но не как ретранслятор удаленного адреса электронной почты.

Это может быть много вещей, но типичной причиной является то, что сервер только передает электронные письма, когда клиент smtp аутентифицируется вместе с ним.

+0

Я использовал адрес электронной почты с тем же доменом, что и сайт, и форма прошла через отлично, спасибо! – lathomas64

+0

При отправке писем всегда пользуйтесь надежным «от адреса». Серверы Smtp, могут использовать записи SPF в домене, в белый список, какие серверы могут отправлять из домена. – dunston

+0

Нет, адрес отправителя не является адресом, а не адресом. В качестве теста я отправил электронное письмо на местный адрес, и он был успешным – lathomas64

0

Это проблема SMTP, не связанная с Sitecore. Вы можете видеть here: что означает точно ошибка 5.1.2.

Для такого случая есть приложение SMTP Testing Winform, которое копирует сервер, и я проверяю, работает ли SMTP.

Я предлагаю вам обратиться в Системное администрирование и поместить его, чтобы проверить, работает ли SMTP для ваших писем.

Смежные вопросы