2010-04-04 5 views
3

Что я здесь делаю неправильно?Код для отправки email

private void SendMail(string from, string body) 
    { 
     string mailServerName = "plus.pop.mail.yahoo.com"; 
     MailMessage message = new MailMessage(from, "[email protected]", "feedback", body); 
     SmtpClient mailClient = new SmtpClient(); 
     mailClient.Host = mailServerName; 
     mailClient.Send(message); 
     message.Dispose(); 
    } 

я получил следующее сообщение об ошибке:

Попытка подключения не удалась, поскольку подключенная сторона не ответила после определенного периода времени, или установить соединение не удалось, так как подключенный хозяин не смог ответить 209.191.108.191: 25

ответ

5

Вы используете wrong server. Вам нужно будет использовать настройки SMTP.

попробуйте этот сервер: plus.smtp.mail.yahoo.com Ваш сайт отметил этот хост как SSL.

private void SendMail(string from, string body) 
{ 
    string mailServerName = "plus.smtp.mail.yahoo.com"; 
    int mailServerPort = 465; 
    string toAddress = "[email protected]"; 
    string subject = "feedback"; 

    string username = "user"; 
    string password = "password"; 

    SmtpClient mailClient = new SmtpClient(mailServerName, 
              mailServerPort); 
    mailClient.Host = mailServerName; 
    mailClient.Credentials = new NetworkCredential(username, 
                password); 
    mailClient.EnableSsl = true; 

    using (MailMessage message = new MailMessage(from, 
               toAddress, 
               subject, 
               body)) 
     mailClient.Send(message); 
} 
+0

Имя пользователя и пароль должны быть отправителем пароля? – aherlambang

+0

У меня также была ошибка: Существующее соединение было принудительно закрыто удаленным хостом – aherlambang

+0

. Да, имя пользователя и пароль должны быть отправлены. Возможно, имя пользователя должно быть вашим адресом электронной почты. Вы также можете попытаться удалить SSL и логин, но это будет зависеть от yahoo. У меня нет счета с ними, поэтому я не могу проверить его для вас. –

5

Необходимо использовать SMTP-сервер, похоже, что вы используете сервер POP3.

0

Чтобы отправить электронное письмо с помощью почтовых серверов Yahoo, вам необходимо установить EnableSSL = true на ваш экземпляр SmtpClient.

Вы также должны использовать правильный порт, который является 465.

Есть много учебников на этом сайте, которые действительно охватывают как использовать пространство имен System.Net.Mail:

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