簡體   English   中英

在GAE上使用Servlet發送電子郵件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM