[英]Sending email with Servlet on GAE
在我的應用程序中編寫代碼如下
public void send_email(String email)
{
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.sendgrid.net");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("my_username","my_password");
}
});
Message message = new MimeMessage(session);
try {
message.setFrom(new InternetAddress("from@no-spam.com"));
message.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("ramesh@abc.com"));
message.setSubject("Testing Subject");
message.setText("Dear Mail Crawler," +
"\n\n No spam to my email, please!");
Transport.send(message);
System.out.println("Done");
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
這個方法在我的servlet類中被調用。 之后,它執行得很好,並在控制台上顯示為“ Done
”的消息,但我沒有在“電子郵件收件箱”中收到任何電子郵件。
如果我運行與Java應用程序相同的代碼,則可以正常工作並收到電子郵件。
但是,當我在Google Web服務器上運行它時,它無法正常工作。還有一件事,這里我從lib中刪除了javaee.jar文件和mail.jar文件,但仍然沒有出現任何錯誤。
給我任何建議的家伙。
但是,當我在Google Web服務器上運行它時,它無法正常工作。
在您的情況下,“ Google Web服務器”是指Google AppEngine? 如果是這樣,則您不能使用完整的JavaMail API,而必須使用Google的基礎架構 。
應用程序無法使用JavaMail界面連接到其他郵件服務以發送或接收電子郵件。 添加到傳輸或會話的SMTP配置將被忽略。
請注意,您不能僅從任何電子郵件地址發送電子郵件。 您需要使用應用程序域中授權的一種。
發件人的電子郵件地址,發件人地址。 發件人地址必須是以下類型之一:
該應用程序的注冊管理員的地址。 您可以使用管理控制台將管理員添加到應用程序中。
使用Google帳戶登錄的當前請求的用戶地址。 您可以使用Users API確定當前用戶的電子郵件地址。 該用戶的帳戶必須是Gmail帳戶,或者位於由Google Apps管理的域上。
該應用程序的任何有效電子郵件接收地址(例如xxx@APP-ID.appspotmail.com)。
域帳戶的任何有效電子郵件接收地址,例如support@example.com。 域帳戶是Google域之外的帳戶,其電子郵件地址不以@ gmail.com或@ APP-ID.appspotmail.com結尾。
https://developers.google.com/appengine/docs/python/mail/sendingmail
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.