2015-05-13 2 views
2
mailMessage.From = new MailAddress(fromEmailAddress); 
     mailMessage.Subject = "Test"; 
     mailMessage.Body = "Manish"; 
     mailMessage.IsBodyHtml = true; 
     mailMessage.To.Add(new MailAddress(toEmailAddress)); 
     SmtpClient smtp = new SmtpClient("smtp.gmail.com", 465);   
     smtp.EnableSsl = true; 
     System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential(); 
     NetworkCred.UserName = userNAme; 
     NetworkCred.Password = password; 
     smtp.UseDefaultCredentials = true; 
     smtp.Credentials = NetworkCred; 
     smtp.Send(mailMessage); 

Я пытаюсь настроить Gmail SMTP и пытался как с TSL и SSL, но выше код всегда бросает TimeOut Exceptionне может отправлять почту с помощью Gmail SMTP в C#

+0

возможно дубликат [Отправка почты через сервер Gmail SMTP с C#] (HTTP: // stackoverflow.com/questions/704636/sending-email-through-gmail-smtp-server-with-c-sharp) – mason

ответ

0

Я думаю, вам нужно установить usedefaultcredentials как ложные. В противном случае имя пользователя/пароль, заданные в сетевых учетных данных, не будет использоваться.

0

Вы не хотите, чтобы установить UseDefaultCredentials в верно для SmtpClient, как он будет использовать учетные данные текущего зарегистрированного пользователя, как на https://msdn.microsoft.com/en-us/library/system.net.mail.smtpclient.usedefaultcredentials%28v=vs.110%29.aspx

Кроме того, он может иметь больше смысла для настройки параметров с помощью web.config, поскольку любые изменения не требуют перекомпиляции и развертывания вашего кода. Похожий вопрос ответил здесь: Send Email via C# through Google Apps account

Если вы решили сохранить ваши настройки SMTP в коде он должен выглядеть следующим образом:

mailMessage.From = new MailAddress(fromEmailAddress); 
mailMessage.Subject = "Test"; 
mailMessage.Body = "Manish"; 
mailMessage.IsBodyHtml = true; 
mailMessage.To.Add(new MailAddress(toEmailAddress)); 
SmtpClient smtp = new SmtpClient("smtp.gmail.com", 465);   
smtp.EnableSsl = true; 
smtp.Credentials = new System.Net.NetworkCredential(userNAme, password); 
smtp.Send(mailMessage); 
Смежные вопросы