2012-06-09 10 views
5

Im ima per inviare una semplice email con questo codice utilizzando il motore di app di google. Ma non succede nulla, c'è qualcosa che devo configurare per usare l'API di posta? Funziona su localhost. Sto usando gmail come host di posta.Invio di posta elettronica con il motore di app di google

String host = "smtp.google.com"; 
String to = "[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); 

risposta

9

Quando si esegue il server di sviluppo AppEngine localmente, qualsiasi cosa inviati tramite il servizio di posta sarà in realtà non essere inviate - sarà solo aver effettuato il login alla console

Vedi here

Quando un'applicazione in esecuzione in Il server di sviluppo chiama il servizio di posta per inviare un messaggio di posta elettronica, il messaggio viene stampato nel registro. Il server di sviluppo Java non invia il messaggio di posta elettronica.

Inoltre, l'indirizzo from deve essere (da here)

  • L'e-mail di un amministratore app
  • L'e-mail dell'utente attualmente connesso a utenti che ha firmato in utilizzando un account Google
  • Un indirizzo email di ricezione valido dall'app
+0

Quindi non c'è modo di inviare un messaggio di posta elettronica da un progetto GAE? O semplicemente non usare in questo modo? – Nick

+0

È possibile, solo da indirizzi specifici e il server di sviluppo locale registra le e-mail nella console – jimr

1

Il mittente dovrebbe essere il proprio indirizzo di posta elettronica Gmail, invece di [email protected]

La ragione è perché il server SMTP ha bisogno di autenticare voi.

0

Diverso dall'email non funzionante in locale host o perché l'email del mittente non è autenticata, ho riscontrato che l'email non funziona anche se la versione non è quella predefinita. Non ho potuto trovare questo documentato ovunque.

Ad esempio: nondefaultversion-dot-myapp.appspot.com (e-mail non funziona, non registri errori) myapp.appspot.com (opere e-mail)

Si prega di confermare se gli altri hanno affrontato questo problema.

1

A quanto pare, GAE non consente più l'utilizzo degli account admin. è necessario utilizzare l'account di servizio: [email protected]

I miei progetti precedenti funzionano ancora con account di amministrazione, ma i progetti creati di recente non mi consentono di utilizzare nessuno degli account di amministrazione.

Problemi correlati