2016-10-08 1 views
0

Я использую следующий код для отправки email.when я Тринг, чтобы отправить почту, я получаю сообщение об ошибкеОшибка: для SMTP-сервера требуется безопасное соединение, или клиент не прошел аутентификацию. Реакция сервера была: 5.5.1 Требуется проверка подлинности

MailMessage mail = new MailMessage(from.txt, to.txt, subject, body); 
SmtpClient clint = new SmtpClient(); 
//for determile email smtp... 
string x = from.txt; 
int startIndex = x.IndexOf('@'); 
int endIndex = x.LastIndexOf('.'); 
int length = endIndex - startIndex; 
string xx = x.Substring(startIndex + 1, length - 1); 

if (xx == "gmail" || xx == "Gmail") 
{ 
    clint.Host = "smtp.gmail.com"; 
    clint.Port = 587; 
    clint.EnableSsl = true; 
} 
if (xx == "Hotmail" || xx == "hotmail" || xx == "live" || xx == "Live") 
{ 
    clint.Host = "smtp.live.com"; 
    clint.Port = 587; 
    clint.EnableSsl = true; 
} 
if (xx == "yahoo" || xx == "Yahoo") 
{ 
    clint.Host = "smtp.mail.yahoo.com"; 
    clint.Port = 465; 
    clint.EnableSsl = true; 
} 
clint.Credentials = new System.Net.NetworkCredential(username, password); 
clint.DeliveryMethod = SmtpDeliveryMethod.Network; 
clint.UseDefaultCredentials = false; 
clint.Send(mail); 
MetroMessageBox.Show(this, "Email Successfully Send", "Success", 
        MessageBoxButtons.OK, MessageBoxIcon.Information); 

, а также как можно прикрепить любой файл к этому электронная почта

+0

имя пользователя должно быть полным адресом электронной почты. ты? –

+0

Включить двухфакторную аутентификацию (например, двухэтапную аутентификацию), а затем создать пароль для приложения. Используйте этот вновь созданный пароль для аутентификации через SMTP. –

+0

Почему бы вам просто не использовать SMTP-сервер, который ваш поставщик услуг позволяет вам использовать и упростить? –

ответ

0

Для получения этой ошибки я прочитал в Интернете, что вы должны использовать UseDefaultCredentials до строки Credentials и что EnableSsl вашего объекта clint должен быть установлен в true.

Reference here

, а также как можно прикрепить любой файл на это сообщение

Вы можете путем добавления вложения к почтовому объекту:

mail.Attachments.Add(new Attachment(filename)); 

Я забыл упомянуть, что двойная проверка подлинности в Gmail может быть проблемой. Если это так, обратитесь к второму решению в ссылке, которую я ранее связывал.

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

  • Нет связанных вопросов^_^