У меня есть сайт, использующий 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);
Хотя это проблема сервера, так как адрес электронной почты пользователя и последующее спасибо страницы работы мелкий локально, но не один раз, когда код удаляется удаленно.
Какие настройки могут приводить к такой ошибке, основанной только на различиях в получателе и отправителе электронной почты?
Я использовал адрес электронной почты с тем же доменом, что и сайт, и форма прошла через отлично, спасибо! – lathomas64
При отправке писем всегда пользуйтесь надежным «от адреса». Серверы Smtp, могут использовать записи SPF в домене, в белый список, какие серверы могут отправлять из домена. – dunston
Нет, адрес отправителя не является адресом, а не адресом. В качестве теста я отправил электронное письмо на местный адрес, и он был успешным – lathomas64