2017-01-27 2 views
1

Не удается подключиться к пограничному почтовому серверу со следующим кодом. Я получаю сообщение «Невозможно подключиться к удаленному серверу». Я запускаю программу, используя C# на своем локальном компьютере.Не удается подключиться к локальному серверу в почтовой программе C#

  try 
      { 
       MailMessage mail = new MailMessage(); 
       SmtpClient SmtpServer = new SmtpClient("smtp.frontier.com"); 

       mail.From = new MailAddress(emailaddress); 
       mail.To.Add("[email protected]"); 
       mail.Subject = thistitle; 
       mail.Body = thisdescription; 

       System.Net.Mail.Attachment attachment; 
       attachment = new System.Net.Mail.Attachment(thisimage); 
       mail.Attachments.Add(attachment); 

       SmtpServer.Port = 25; 
       SmtpServer.Credentials = new System.Net.NetworkCredential("username", "xxxxxxx"); 
       SmtpServer.EnableSsl = true; 

       SmtpServer.Send(mail); 
       MessageBox.Show("Mail sent"); 
      } 
      catch (Exception ex) 
      { 
       MessageBox.Show(ex.ToString(), "Email Error Message"); 
      } 

Может ли кто-нибудь сказать, есть ли у меня правильные параметры для пограничной почты? Я знаю, что они используют Yahoo, но я пробовал это также без успеха. Не удается ли запустить почтовый сервер с моей локальной машины? Любая помощь приветствуется.

ответ

0

просто попробуйте удалить этот код SmtpServer.EnableSsl = true;

+0

Я уже пробовал это и получил тот же результат. – Dave

+0

они должны отвечать на разные сообщения, если ответ на это сообщение означает одно и то же исключение. можете ли вы проверить доступность через Интернет smtp.frontier.com на порт 25? –

+0

вы можете использовать клиент 'telnet', чтобы попробовать, используйте эту команду' telnet -open smtp.frontier.com 25 ', если это не ответило на это сообщение, например: 220 relay03.roch.ny.frontiernet.net ESMTP Postfix', что означает, что вы можете 't visit stmp.frontier.com on port 25. –

0

ли ваш провайдер блокировать SMTP трафика? (это часто бывает для некоммерческих счетов).

Если нет ... переписать код вы ближе к этому:

try 
    { 
     using (var attachment = new Attachment(thisimage)) 
     using (var mail = new MailMessage()) 
     { 
      mail.From = new MailAddress(emailaddress); 
      mail.To.Add("[email protected]"); 
      mail.Subject = thistitle; 
      mail.Body = thisdescription; 
      mail.Attachments.Add(attachment); 

      using (var client = new SmtpClient("smtp.frontier.com")) 
      { 
       client.Port = 25; 
       client.Credentials = new System.Net.NetworkCredential("username", "xxxxxxx"); 
       client.EnableSsl = true; 
       client.Send(mail); 
      } 
     } 

     MessageBox.Show("Mail sent"); 
    } 
    catch (SmtpException ex) 
    { 
     // go read through https://msdn.microsoft.com/en-us/library/swas0fwc(v=vs.110).aspx 
     // go read through https://msdn.microsoft.com/en-us/library/system.net.mail.smtpexception(v=vs.110).aspx 
    } 
#if DEBUG 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.ToString(), "Email Error Message"); 
    } 
#endif 
} 

... и запустить его в отладчике и посмотреть на то, что, указавших на SmtpException. Существует множество причин, по которым вы можете отключить соединение.

+0

Я получил следующую ошибку с кодом: \t \t Сообщение \t "System.Net.Mail.SmtpException: Отказ отправки почты. ---> System.Net.WebException: Не удалось подключиться к удаленному серверу ---> System.Net.Sockets.SocketException: попытка подключения не удалась, потому что связанная сторона не ответила должным образом через какое-то время или установив соединение не удалось, потому что подключенный хост не смог ответить 199.224. 64.207: 25 \ r \ n Как узнать, блокирует ли мой интернет-трафик SMPT-трафик? – Dave

+0

Я снова запустил его с портом 587 и отключил EnableSs1 и получил сообщение «Отправитель отправлен: доступ запрещен». – Dave

0

Im неспособный прокомментировать, поэтому я наберу свой комментарий в качестве ответа. Можете ли вы использовать ImapClient вместо SmtpClient? С помощью Imap вы можете выполнять некоторые процессы аутентификации. Может быть проблема, она выглядит только потому, что вы входите. Для Imap я делаю это:

using (var clientTest = new ImapClient()) 
{ 
    clientTest.Connect("[email protected]"); 
    clientTest.AuthenticationMechanisms.Remove("XOAUTH"); 
    clientTest.Authenticate(eMail, pw); 
    bIsConnected = clientTest.IsConnected; 

    if (bIsConnected == true) 
    { 
     /// Insert Code here 
    } 
} 
Смежные вопросы