2016-04-09 3 views
-1
public static void sendEmail(String mailTo, String mailCC, String subject, String content) 
{ 
    Properties properties = System.getProperties(); 

    properties.setProperty("mail.transport.protocol", "smtp"); 
    properties.setProperty("mail.host", "smtp.gmail.com"); 
    properties.put("mail.smtp.socketFactory.port", "465"); 

    properties.put("mail.smtp.auth", "true"); 
    properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
    properties.put("mail.smtp.socketFactory.fallback", "false"); 
    properties.setProperty("mail.smtp.quitwait", "false"); 
    properties.put("mail.smtp.port","465"); 


    try { 
     Session session = Session.getDefaultInstance(properties, 
       new Authenticator() { 

      protected PasswordAuthentication getPasswordAuthentication() { 
       return new PasswordAuthentication(
         "[email protected]", "XXXXXX"); 
      } 
     }); 
     Message message = new MimeMessage(session); 
     Address fromAddress = new InternetAddress("[email protected]"); 
     Address toAdd = new InternetAddress(mailTo); 
     Address ccAdd = new InternetAddress(mailCC); 

     message.setFrom(fromAddress); 
     message.setRecipient(Message.RecipientType.TO, toAdd); 
     message.setRecipient(Message.RecipientType.CC, ccAdd); 
     message.setSubject(subject);   

     Transport.send(message); 

    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

私はerror.Please下に直面していますが、次のことを行う必要がありSMTPエラー

+3

以下はどのようなエラーが表示されるのですか? – Tibrogargan

答えて

0

を助ける:あなたのGmailのGoogleアカウントで

1)を、あなたはあまりを有効にする必要があります安全なアプリ。

安全性の低いアプリの

2)は以下のプロパティのセットを試してみてください許可し、私だけ

Properties props = System.getProperties(); 
    //props.setProperty ("mail.transport.protocol", "smtp"); 
    props.setProperty ("mail.smtp.host", "smtp.gmail.com"); 
    props.setProperty ("mail.smtp.user", this.getUsername()); 
    props.setProperty ("mail.smtp.password", this.getPassword()); 
    props.setProperty ("mail.smtp.port", "465"); 
    props.setProperty ("mail.smtp.socketFactory.port", "465");   
    props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
    props.setProperty ("mail.smtp.auth", "true"); 
    props.setProperty ("mail.smtp.ssl.enable", "true"); 
    props.setProperty ("mail.smtp.localhost", "localhost"); // added this line 
    props.setProperty ("mail.debug", "true"); // added this line 

3 ....最後に2つの追加の小道具を追加)/認証済みの転送を使用セッション:

Session session = Session.getInstance(props, null); 

セッションは認証者を通過しないことに注意してください。

 // Send message 
     //Transport transport = session.getTransport("smtps"); 
     Transport transport = session.getTransport("smtp"); 
     transport.connect("smtp.gmail.com", this.getUsername(), getPassword()); 
     getLog().info("Transport.....................................[" + transport.toString() + "]"); 
     transport.sendMessage(message, message.getAllRecipients()); 

注意トランスポートには、gmailアカウントとpwdを使用してログインする接続が使用されます。

関連する問題