1

В Googel приложение двигателя, если мы не используем OpenID логин, мы можем отправить почту like its written in APIОтправить почту из приложения двигателя (anauthorization раствор)

Но я использую OpenId Логин (с помощью Google Mail), и я не могу использовать это.

Но я что-то вроде thatL

 Properties props = new Properties(); 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     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(
           "[email protected]", "pass"); 
        } 
       }); 



      **Message message = new MimeMessage(session); 
      message.setFrom(new InternetAddress("mail")); 
      message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("mail")); 
      message.setSubject("Testing Subject"); 
      message.setText(msgBody); 
      Transport.send(message); 

ЕСЛИ Я БУДУ войти и ТО, ЧТО ЗВОНИТЕ Servlet, например www.example.appspot.com/mail это работает!, но если я не вошел в систему, это не сработает! ?! Но я не понимаю, что происходит **

java.lang.RuntimeException: javax.mail.SendFailedException: Send failure (javax.mail.MessagingException: Illegal Arguments (java.lang.IllegalArgumentException: Unauthorized Sender: Unauthorized sender)) 
    at test.queue.MailServlet.sendMail(MailServlet.java:208) 

на этом 208 линии у меня есть это:

protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication("[email protected]","pass"); 
     } 
+0

Мне нужно что-то, без auth – grep

+0

Вы не можете отправить электронное письмо от других пользователей без авторизации. –

+0

Я не понимаю, что вы имеете в виду ... можете ли вы сказать мне это более ясно? У меня есть электронные письма в базе данных (приложение приложения для приложений). и хотите отправлять письма всем пользователям ... – grep

ответ

2

адрес установлен в «от» должен присутствовать по допуску -> Разрешения для приложения gae и для отправки электронной почты с этой разрешенной учетной записи не нужно указывать пароль в коде.

«Для целей безопасности адрес отправителя сообщения должен быть адресом электронной почты администратора для приложения или действительным адресом получателя электронной почты для приложения (см.« Получающая почта »). Отправитель также может быть адресом электронной почты Google адрес текущего пользователя, который зарегистрирован, если учетная запись пользователя является учетной записью Gmail или находится в домене, управляемом Google Apps ». - как упоминалось здесь https://developers.google.com/appengine/docs/java/mail/#Java_Sending_mail_with_the_JavaMail_API

+0

Если я установил почту администратора, будет ли этот код работать каждый раз в любой ситуации? – grep

+0

yes @DSTH он будет работать во всех случаях, не нужно указывать пароль в коде. только этот код будет работать, мы используем его для приветственного сообщения mobitexter.net при регистрации пользователя, он работает без проблем. Сообщение msg = new MimeMessage (сеанс); msg.setFrom (новый адрес в Интернете ("[email protected]", "Example.com Admin")); msg.addRecipient (Message.RecipientType.TO, новый InternetAddress («[email protected]», «Mr. User»)); msg.setSubject («Ваша учетная запись Example.com была активирована»); msg.setText (msgBody); –

+0

он не отправляет письма :(и у меня нет ошибок в журнале :( – grep

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