По вашему коду вы указываете, что поле From
почтового сообщения основано на адресе электронной почты, который заполняет пользователь. Почта почтового сервера отклоняет это и разрешает только электронную почту с доменного имени example.com
иливозможно имя самого сервера.Я сталкивался с этим раньше, когда ваше поле From
должно быть исходным доменом сайта ...
Если вы хотите, чтобы получатель электронной почты мог ответить напрямую, используйте Поле ReplyTo вместо поля from:
MailMessage mailMessage = new MailMessage();
//try using a domain address that matches your server and/or site.
//the email address itself may also have to exist depending on the mail server.
mailMessage.From = new MailAddress("no-reply@example.com");
//set the replyto field
mailMessage.ReplyTo = new MailAddress(txtEmailId.Text);
//send the mail...
Надеюсь, это может помочь ...
РЕДАКТИРОВАТЬ:
После того, как выотредактировал ваш вопрос, выше всё ещё актуально.Весьма вероятно, что вы не можете использовать From
адрес вне домена вашего собственного сайта example.com
.Если вы хотите отправить две копии запроса (одну на contact@example.com, а другую пользователю в качестве подтверждения), вам просто нужно добавить в свойство To
:
MailMessage mailMessage = new MailMessage();
//try using a domain address that matches your server and/or site.
//the email address itself may also have to exist depending on the mail server.
mailMessage.From = new MailAddress("abc@example.com");
//add the contact email address to the To list
mailMessage.To.Add(new MailAddress("contact@example.com"));
//add the user email address to the To list
mailMessage.To.Add(new MailAddress(txtEmailId.Text));
//set the replyto field
mailMessage.ReplyTo = new MailAddress(txtEmailId.Text);
//send the mail...
Если вам нужно добавить простое сообщение для письма с подтверждением пользователя, вы также можете сделать:
try
{
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("abc@example.com");
mailMessage.To.Add(new MailAddress("contact@example.com"));
mailMessage.ReplyTo = new MailAddress(txtEmailId.Text);
mailMessage.Subject = txtSubject.Text;
mailMessage.Body = txtMessage.Text;
mailMessage.IsBodyHtml = false;
mailMessage.Priority = MailPriority.High;
SmtpClient sc = new SmtpClient("relay-hosting.secureserver.net");
//sc.Credentials = new System.Net.NetworkCredential("contact@example.com", "MyPassword");
//send to only the contact@example.com first
sc.Send(mailMessage);
mailMessage.To.Clear();
mailMessage.To.Add(new MailAddress(txtEmailId.Text));
//add a simple message to the user at the beginning of the body
mailMessage.Body = "Thank you for submitting your question. The following has been submitted to contact@example.com: <br/><br/>" + mailMessage.Body;
//send the acknowledgment message to the user
sc.Send(mailMessage);
}
catch (Exception ex)
{
Label1.Text = "An Error has occured : "+ex.Message;
}