2013-04-22 4 views
2

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

error http://img7.imageshack.us/img7/7227/42097647.png

Код

protected void Submit_Click(object sender, EventArgs e) 
    { 
    if (ValidateBox.Text == "6") 
    { 
     MailMessage message = new MailMessage(); 
     message.From = new MailAddress(EmailBox.Text.ToString()); 
     message.To.Add(new MailAddress("[email protected]")); 
     message.Subject = "Message via CAM Website General Mailbox"; 
     string body = "Name: " + NameBox.Text.ToString() + Environment.NewLine + Environment.NewLine + 
         "Home Tel: " + HomeTelBox.Text.ToString() + Environment.NewLine + Environment.NewLine + 
         "Work Tel: " + WorkTelBox.Text.ToString() + Environment.NewLine + Environment.NewLine + 
         "Comment/Question: " + CommentBox.Text.ToString(); 

     message.Body = body; 


     SmtpClient client = new SmtpClient(); 
     client.Send(message); 

     Response.Redirect("~/Thank-You.aspx"); 
    } 

    else 
    { 
     Label1.Visible = true; 
    } 



} 

Может быть, это ошибка от клиента SMTP, указанного в моем WebConfig, Как я могу проверить, если его работает нормально? Благодарю.

ответ

1

Вы не устанавливаете Network Credentials. Другими словами, вы не аутентифицируете электронное письмо.

NetworkCredential myCredentials = new NetworkCredential(
"[email protected]","myPassword","mail.myDomainName.com"); 


client.Credentials = myCredentials; 
1

Это проблема с конфигурацией.

Сервер SMTP, указанный в вашем web.config (system.net> mailSettings> smtp), не настроен для ретрансляции. У вас есть два варианта, чтобы исправить это: (! Только)

  1. Настройка сервера SMTP, чтобы позволить ретрансляцию для IP-адреса вашего веб-сервера.
  2. Отправить SMTP-учетные данные с помощью SmtpClient (см. Ответ Дэйва для этого).
Смежные вопросы