2012-06-09 7 views
5

Estoy tratando de enviar un simple correo electrónico con este código usando el motor de la aplicación de google. Pero no pasa nada, ¿hay algo que deba configurar para usar la API de correo? Esto se ejecuta en localhost. Estoy usando gmail como host de correo.Enviando un correo electrónico con el motor de la aplicación de google

String host = "smtp.google.com"; 
String to = "e[email protected]"; 
String from = "[email protected]"; 
String subject = "this is a test"; 
String messageText = "test"; 
boolean sessionDebug = false; 
// Create some properties and get the default Session. 
Properties props = System.getProperties(); 
props.put("mail.host", host); 
props.put("mail.transport.protocol", "smtp"); 
Session mailSession = Session.getDefaultInstance(props, null); 

// Set debug on the Session 
// Passing false will not echo debug info, and passing True will. 

mailSession.setDebug(sessionDebug); 

// Instantiate a new MimeMessage and fill it with the 
// required information. 

Message msg = new MimeMessage(mailSession); 
msg.setFrom(new InternetAddress(from)); 
InternetAddress[] address = { new InternetAddress(to) }; 
msg.setRecipients(Message.RecipientType.TO, address); 
msg.setSubject(subject); 
msg.setSentDate(new Date()); 
msg.setText(messageText); 

// Hand the message to the default transport service 
// for delivery. 

Transport.send(msg); 

Respuesta

9

Cuando se ejecuta el servidor de desarrollo de App Engine a nivel local, lo que sea enviado a través del servicio de correo en realidad no se ha enviado - se acaba de iniciar sesión en la consola

Ver here

Cuando una aplicación se ejecuta en el el servidor de desarrollo llama al servicio de correo para enviar un mensaje de correo electrónico, el mensaje se imprime en el registro. El servidor de desarrollo de Java no envía el mensaje de correo electrónico.

Además, la dirección de from debe ser (de here)

  • El correo electrónico de un administrador de aplicaciones
  • El correo electrónico del usuario actualmente conectado que ha iniciado sesión con una cuenta de Google
  • Una dirección válida de recepción de correo electrónico desde la aplicación
+0

¿No hay forma de enviar un correo electrónico desde un proyecto de GAE? ¿O simplemente no usar de esta manera? – Nick

+0

Puede, solo a partir de direcciones específicas y el servidor de desarrollo local simplemente registra los correos electrónicos en la consola – jimr

1

El remitente debe ser su propia dirección de correo electrónico Gmail en lugar de [email protected]

La razón es porque el servidor SMTP necesita autenticar ti.

0

Aparte del correo electrónico no funciona en local host o debido a que el correo electrónico del remitente no es el autenticado, he experimentado que el correo electrónico no funciona incluso cuando la versión no es la predeterminada. No pude encontrar esto documentado en ningún lado.

Por ejemplo: nondefaultversion-dot-myapp.appspot.com (correo electrónico no funciona, no hay registros de errores) myapp.appspot.com (obras de correo electrónico)

Por favor confirmar si otros también se han enfrentado a este problema.

1

Aparentemente, GAE ya no permite el uso de las cuentas de administrador. necesita usar la cuenta de servicio: [email protected]

Mis proyectos anteriores todavía funcionan con cuentas de administrador, pero los proyectos recientemente creados simplemente no me permiten usar ninguna de las cuentas de administrador.

Cuestiones relacionadas