2013-08-26 83 views
1

我正嘗試使用以下方法發送電子郵件。它工作正常,但我面臨着一個問題。 我想使用不同的「發件人」地址,然後使用我用於Gmail身份驗證的地址。 所以在下面的代碼中,我將「message.setfrom」設置爲[email protected],但仍然在收件人收到電子郵件時,發件人地址爲[email protected]如何在javamail中設置正確的電子郵件地址?

請幫助我確定我在這裏做錯了什麼,以及如何將地址正確設置爲「[email protected]」。 感謝您的幫助! 謝謝!

private void sendMail(String textBody, String subject) { 
    try { 
     final String messageSender = "[email protected]"; 
     final String pass = "pass"; 
     /** get my properties **/ 
     props.put("mail.smtp.auth", "true"); 
     props.put("mail.smtp.starttls.enable", "true"); 
     props.put("mail.smtp.host", "smtp.gmail.com"); 
     props.put("mail.debug", "true"); 
     props.put("mail.smtp.debug", "true"); 
     props.put("mail.smtp.port", "587"); 

     /** get default session object **/ 
     Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() 
     { 
      protected PasswordAuthentication getPasswordAuthentication() 
      { 
       return new PasswordAuthentication(messageSender, pass); 
      } 
     }); 

     MimeMessage message = new MimeMessage(session); 

     String[] to = {"[email protected]"}; 
     InternetAddress[] addressTo = new InternetAddress[to.length]; 

     message.setRecipients(MimeMessage.RecipientType.TO, addressTo); 
     message.setSubject(subject); 

     BodyPart messageBodyPart = new MimeBodyPart(); 

     // Fill the message 
     messageBodyPart.setText(textBody); 

     // Create a multipart message 
     Multipart multipart = new MimeMultipart(); 

     // Set text message part 
     multipart.addBodyPart(messageBodyPart); 

     // Send the complete message parts 
     message.setContent(multipart); 
     message.setFrom(new InternetAddress("[email protected]")); 

     //send message 
     Transport.send(message); 

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

} 

回答

0

Gmail會阻止你這樣做。最好你可以做的是改變回復。

+0

謝謝!我還添加了回覆,回覆功能正常。所以它是一個Gmail的限制。 :(可能是我會切換到雅虎然後。 – dev123

相關問題