2012-05-22 2 views
6

У меня проблема, когда я отправляю почту через этот код, возникает ошибка: «Для SMTP-сервера требуется защищенное соединение или клиент не прошел проверку подлинности. Ответ сервера был: . 5.5.1 Authentication Required "Для SMTP-сервера требуется безопасное соединение, или клиент не прошел аутентификацию. Ответ сервера был: 5.5.1 Требуется аутентификация

и мой код:

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) 
{ 

    MailMessage mail = new MailMessage(); 
    mail.To.Add("[email protected]"); 
    mail.From = new MailAddress("[email protected]"); 
    string body = "<table><tr><td>Company Name:</td><td>" + txt_cname.Text + "</td></tr><tr><td>Address With No.:</td><td>" + txt_addwithno.Text + "</td></tr><tr><td>Contact Person:</td><td>" + txt_conperson.Text + "</td></tr><tr><td>Email Id</td><td>" + txt_email.Text + "</td></tr><tr><td>Description</td><td>" + txt_description.Text + "</td></tr></table>"; 
    mail.Body = body; 
    mail.IsBodyHtml = true; 
    SmtpClient smtp = new SmtpClient(); 
    smtp.Host = "smtp.gmail.com"; 
    smtp.Port = 25; 
    smtp.UseDefaultCredentials = true; 
    smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "xyz"); 
    smtp.EnableSsl = true; 
    smtp.Send(mail); 


    txt_cname.Focus(); 
    txt_cname.Text = ""; 
    txt_addwithno.Text = ""; 
    txt_conperson.Text = ""; 
    txt_email.Text = ""; 
    txt_description.Text = ""; 

} 
+0

Решается ли этот вопрос? Потому что у меня такая же проблема и вы пытаетесь ее исправить. –

+0

Возможно, вы захотите попробовать: http://stackoverflow.com/a/11513412/676508 –

ответ

4

Я думаю, вы должны установить UseDefaultCredentials к ложным, так как вы определяете учетные данные для подключения.

Установите это свойство истинную когда SmtpClient объект должен, если запрошенного сервера аутентификации с использованием учетных данных по умолчанию вошедших в системе пользователя.

[...]

Если свойство UseDefaultCredentials установлено в ложной, того значения , установленной в свойстве учетных данных будет использоваться для учетных данных при подключающихся к серверу

2

Попробуйте порт 587 (он работал для меня) , а также установить UseDefaultCredentials ложь. Установите и попытаться послать почту

+0

hi maine useDefaultCredentials для false, но не сработали –

+0

ok попытаться удалить строку UseDefaultCredentials или на данный момент комментировать ее –

+0

и дайте мне знать –

15

Google может предотвратить приложение от доступа к вашей учетной записи
Здесь вы можете включить приложения для доступа к учетной записи Google с учетными данными:

https://accounts.google.com/DisplayUnlockCaptcha

+0

он работал после этого ... –

0

Порт Безразлично» Это действительно важно, поскольку System.Net.Mail не поддерживает неявный SSL, другими словами, он полностью игнорирует параметр «Порт».

0

Я пытался установить это через SQL Server 2012 Database Mail и получал то же сообщение.

Я никогда не мог заставить его работать, используя мою основную учетную запись g-mail, которая использует двойную аутентификацию даже после использования пароля для конкретного приложения. Я закончил тем, что пытался выполнить свою вторую учетную запись, у которой нет двойной авторизации, и она сработала немедленно. Поэтому для тех, кто не может заставить его работать с использованием одного из вышеперечисленных решений, попробуйте его со стандартной учетной записью gmail электронной почты.

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

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