如何在javamail中设置正确的电子邮件地址?

时间:2013-08-26 23:22:10

标签: java javamail sendmail

我正在尝试使用以下方法发送电子邮件。它工作正常,但我面临一个问题。 我想使用不同的“发件人”地址,然后使用我用于gmail身份验证的地址。 所以在下面的代码中我设置了“message.setfrom” - 作为sender@comp.com但是当接收者收到电子邮件时,来自地址的是user@gmail.com。

请帮助我确定我在这里做错了什么,以及如何将发件人地址正确设置为“sender@comp.com”。 感谢您的帮助! 谢谢!!

    private void sendMail(String textBody, String subject) {
    try {
        final String messageSender = "user@gmail.com";
        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 = {"abc@test.com"};
        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("sender@comp.com"));

        //send message
        Transport.send(message);

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

}

1 个答案:

答案 0 :(得分:0)

Gmail会阻止您这样做。你能做的最好就是把答复改为。