2012-06-13 40 views
11

Mi código para enviar correo electrónico a través de SMTP de Gmail:No se puede utilizar Gmail SMTP desde Azure Cloud Service

SmtpClient client = new SmtpClient("smtp.gmail.com", 587); 
client.EnableSsl = true; 
client.UseDefaultCredentials = false; 
client.Credentials = new NetworkCredential("my_user_name", "my_password"); 

MailMessage message = 
    new MailMessage(new MailAddress("[email protected]"), new MailAddress("[email protected]")); 
message.Body = "body"; 
message.Subject = "subject"; 
client.Send(message); 

El código funciona en mi máquina local y cuando publico en Azure como "Sitio Web".

pero cuando publico en un "Cloud Service" me sale esta excepción:

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 

¿Hay algo que se diferencia un "sitio Web" Windows Azure de un "servicio de nube" que podría tener este ¿efecto?

Gracias!

Respuesta

8

Usar configuración siguiente SMTP en Web.config:

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network"> 
      <network defaultCredentials="false" enableSsl="true" host="smtp.gmail.com" port="587" userName="[email protected]" password="xxxxxxxxxxx"/> 
     </smtp> 
    </mailSettings> 
</system.net> 

Creo que está transmitiendo credenciales incorrectas. Utilice @ gmail.com sufijo en el nombre de usuario y tratar de establecer la propiedad bodyhtml cierto también ...

la esperanza que esto funcionará para usted .. Siempre trabaja correctamente para mí .. comentario

cheque de respuesta en el this SO thread.

+0

Bingo! El nombre de usuario de sufijo con @ gmail.com hizo el truco en la aplicación "Servicio de nube". – Cotten

+0

en realidad, gmail toma el ID de correo electrónico completo como nombre de usuario, ya sea que lo configure en Outlook o en cualquier cliente. –

+0

sí, quizás, pero funcionó sin @ gmail.com en cassini y en Azure como un "sitio web". Tal vez tuve suerte allí :) – Cotten

4

Parece que su conexión es rechazada por el servidor SMTP porque no está habilitada para SSL o las credenciales son incorrectas. Usted tendría que credenciales SSL Configuración de red y en su web.config de la siguiente manera:

<system.net> 
<mailSettings> 
    <smtp deliveryMethod="Network"> 
     <network enableSsl="true" host="smtp.gmail.com" port="25" userName="[email protected]" password="xxxxxxxxxxx"/> 
    </smtp> 
</mailSettings> 
</system.net> 

Más información está disponible en esta discusión SO: C# - Can't send mail in WIndows Azure via Gmail SMTP

0

Como dije antes su nombre de usuario debería contener "@ googlemail.com". En mi código (java) estoy usando puerto 465 para enviar correos a través de google mail.

12

Experimenté este problema exacto. Sin embargo, experimenté el problema independientemente del hecho de que estaba usando la configuración de configuración <system.net> y estaba usando las credenciales apropiadas, host, puerto, etc.

El problema era que Google rechazaba la solicitud de autenticación proveniente de Azur. Descubrí esto iniciando sesión en la cuenta de Gmail que estaba usando para el cliente SMTP en mi código. Una vez que inicié sesión en la cuenta de Gmail, noté una advertencia de encabezado de barra roja que decía

Alguien accedió desde una ubicación que no es típica de su cuenta. Si no fue usted, cambie su contraseña de inmediato.

además de la advertencia, he recibido un correo electrónico que dice:

Recientemente, alguien trató de utilizar una aplicación para acceder a su cuenta de Google , [email protected] Evitamos el intento de inicio de sesión en caso de que se tratara de un secuestrador que intenta acceder a su cuenta.Por favor revise los detalles de la un intento de acceso:

  • Lunes, 27 de agosto 2012 10:33:59 PM GMT
  • Dirección IP: 168.62.48.183
  • Ubicación: Estados Unidos

Si no reconoce este intento de inicio de sesión, alguien más podría estar intentando acceder a su cuenta. Debe iniciar sesión en su cuenta y restablecer su contraseña de inmediato. Descubra cómo en http://support.google.com/accounts?p=reset_pw

Si esto era usted, y quiere dar a esta aplicación acceso a su cuenta , completar los pasos de resolución que figuran en http://support.google.com/mail?p=client_login

Atentamente, El equipo de Cuentas de Google

Después de seguir los pasos enumerados en el enlace proporcionado, mi sitio web Azure pudo iniciar sesión correctamente en mi cuenta de Gmail y usar Gmail como cliente SMTP.

+0

FYI - Necesita iniciar sesión en la cuenta de Gmail que se utiliza desde su código. Recibí el correo electrónico de "actividad sospechosa" en una cuenta vinculada y no pude autorizar la dirección IP. – Jason

+0

¡Usted leyenda! Tuve que volver a iniciar sesión con mi cuenta de Gmail, marcar los inicios de sesión sospechosos como legítimos e ir a http://www.google.com/accounts/DisplayUnlockCaptcha. Eso lo solucionó. – Henners

+0

eres un salvavidas ¡GRACIAS! He estado tirando de mi pelo en este durante un par de horas. eeesh! –

Cuestiones relacionadas