2013-04-27 3 views
0

Пишет код как последовать в моем приложенииОтправка электронной почты с Servlet на 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("[email protected]")); 

      message.setRecipients(Message.RecipientType.TO, 
        InternetAddress.parse("[email protected]")); 

      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(); 
     } 


} 

Это метод вызываются в моем классе сервлета. После этого он хорошо выполнил и дал сообщение как «Done» на консоли, но я не получал никакого электронного сообщения в почтовом ящике электронной почты.

Если я запустил этот же код, как приложение java, он отлично работает и получил электронное письмо.

Но когда я запускаю его на веб-сервере Google, его не работает. И, кроме того, здесь я удалил файлы javaee.jar и файлы mail.jar из lib, но при этом он не дал никаких ошибок.

Дайте мне какие-либо предложения, ребята ....

ответ

1

Но когда я запустить его на веб-сервере Google ее не работает ..

«веб-сервер Google» в вашем случае означает Google AppEngine ? Если это так, вы не можете использовать полный API JavaMail, но должны use Google's infrastructure.

Приложение не может использовать интерфейс JavaMail для подключения к другой почтовой службе для отправки или получения сообщений электронной почты. Конфигурация SMTP , добавленная к транспорту или сеансу, игнорируется.

+0

ооо Спасибо за то, что переигровки чувак .. , но до сих пор я не получил никакого сообщения в почтовом ящике .... Marcel –

0

Помните, что вы не можете отправить электронное письмо с любого адреса электронной почты. Вы должны использовать тот, который разрешен в домене вашего приложения.

Адрес электронной почты отправителя, адрес отправителя. Адрес отправителя должен быть одним из следующих типов:

  • Адрес зарегистрированного администратора приложения. Вы можете добавить администраторов в приложение с помощью Консоли администрирования.

  • Адрес пользователя для текущего запроса, подписанного с помощью учетной записи Google . Вы можете определить адрес электронной почты текущего пользователя с API-интерфейсом пользователей. Учетная запись пользователя должна быть учетной записью Gmail или быть в домене, управляемом Google Apps.

  • Любой действительный адрес электронной почты для приложения (например, [email protected]).

  • Любой действительный адрес электронной почты , получающий адрес учетной записи домена, такой как [email protected] Доменные учетные записи являются аккаунтами вне домена Google с адресами электронной почты , которые не заканчиваются на @ gmail.com или @ APP-ID.appspotmail.com.

https://developers.google.com/appengine/docs/python/mail/sendingmail

Смежные вопросы