O tempo limite do Gmail SMTP

Não sei porquê isso está acontecendo. Toda onde eu procuro me diz que estou fazendo certo. Mas toda vez que tento enviar o e-mail, o tempo passa no smtpserver.Send(mail)

 private void emailReport(string email_address,int begDatabaseCount, int endDatabaseCount) { SmtpClient smtpserver = new SmtpClient(); MailMessage mail = new MailMessage(); smtpserver.EnableSsl = true; smtpserver.Port = 465; smtpserver.Host = "smtp.gmail.com"; smtpserver.Credentials = new NetworkCredential("mtaylor@atr.com", "password"); smtpserver.UseDefaultCredentials = false; mail = new MailMessage(); mail.From = new System.Net.Mail.MailAddress("mtaylor@atr.com", "ATR Reports"); mail.To.Add(email_address); mail.Subject = "FNAS Report - " + DateTime.Now; mail.Body += "FNAS Report for " + DateTime.Now + "" + "\r\n \r\n"; mail.Body += "Beginning Database Count - " + begDatabaseCount + "\r\n" + "\r\n"; mail.Body += "End Database Count - " + endDatabaseCount + "\r\n" + "\r\n"; mail.Body += "Total Imported Orders = " + (endDatabaseCount - begDatabaseCount) + "" + "\r\n" + "\r\n"; mail.IsBodyHtml = true; smtpserver.Send(mail); } 

Porta 465 = Tempo limite após 1 minuto

Porta 587 = “O servidor SMTP requer uma conexão segura ou o cliente não foi autenticado. A resposta do servidor foi: 5.5.1 Autenticação necessária.”

Como @kostyan disse, a porta certa é 587, mas para autenticar você precisa permitir o access de aplicativos menos seguros em sua conta do Gmail. Experimente aqui

Funcionou para mim, espero que ajude ..

Você tem certeza sobre a porta, no meu código eu tenho como 587, caso contrário, parece semelhante e funciona.

Esse tópico me ajudou. Não sei por que esse código funcionou e o meu não.

Envio de email no .NET através do Gmail

 using System.Net; using System.Net.Mail; var fromAddress = new MailAddress("from@gmail.com", "From Name"); var toAddress = new MailAddress("to@example.com", "To Name"); const string fromPassword = "fromPassword"; const string subject = "Subject"; const string body = "Body"; var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { smtp.Send(message); } 

Descobri que, quando tentei falsificar o endereço do remetente usando o google smtp (por exemplo, usando FromAddress como algo diferente do nome da minha conta do gmail), eu estava recebendo mensagens de erro de autenticação ou simplesmente expirando.