2016-02-05 5 views
3

Сервер: VDSC# - отправка электронной почты через Gmail или другое?

ОС: Windows Server 2008 R2

Применение: Нет

библиотека (DLL используется приложением): Да, C#

Я пытаюсь отправить почту через C# используя то, что я читал, службу gmail. В принципе, просто тестовое письмо для меня было бы началом узнать, как это работает. Если вам нужно спросить, информация хранится в файле config.json, а не непосредственно в коде, следовательно, «AccountRecovery.AccountRecoveryConfig».

Я не могу заставить его работать! При использовании определенных портов я получаю разные ошибки!

ПОРТ 465 - с учетными данными ОШИБКА:

2016-02-05 02:52:33 - Command: ERROR: System.Net.Mail.SmtpException: Failure sending mail. ---> System.IO.IOException: Unable to read data from the transport connection: net_io_connectionclosed.

ПОРТ 587 - с учетными данными ОШИБКА:

2016-02-05 02:55:50 - Command: ERROR: System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at

Я понятия не имею, что делать. Я делаю что-то неправильно?

public static void SendEmail(string email) 
    { 
     MailMessage mail = new MailMessage(AccountRecovery.AccountRecoveryConfig.ServerEmailAddress, email); 
     SmtpClient client = new SmtpClient(); 
     client.Timeout = 30000; 
     client.Host = AccountRecovery.AccountRecoveryConfig.HostSMTPServer; 
     client.Port = AccountRecovery.AccountRecoveryConfig.HostPort; 
     client.DeliveryMethod = SmtpDeliveryMethod.Network; 
     client.UseDefaultCredentials = false; 
     client.Credentials = new System.Net.NetworkCredential(AccountRecovery.AccountRecoveryConfig.ServerEmailAddress, AccountRecovery.AccountRecoveryConfig.ServerEmailPassword); 
     client.EnableSsl = true; 
     //client.ServicePoint.MaxIdleTime = 1; 
     mail.Subject = AccountRecovery.AccountRecoveryConfig.EmailSubjectLine; 
     mail.Body = AccountRecovery.AccountRecoveryConfig.EmailBodyLine; 
     mail.IsBodyHtml = false; 
     client.Send(mail); 
    } 
+2

Возможный дубликат [Отправка электронной почты в .NET через Gmail] (http://stackoverflow.com/questions/32260/sending-email-in-net-through-gmail) – Filburt

ответ

1

Правильный порт 587 для Google, эта ошибка:

2016-02-05 02:55:50 - Command: ERROR: System.Net.Mail.SmtpException: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at

Вы должны предоставить доступ к менее защищенным приложениям. Вот LINK, где вы можете сделать это для своей текущей учетной записи google.

+0

По-прежнему сохраняется ошибка. Я включил менее безопасные функции ... – Marcus101RR

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