使用JavaMailSender在Spring中配置Mail

时间:2014-06-13 19:20:34

标签: java spring email

我正在尝试在Spring Web App中配置JavaMailSender。订单完成后,它会发送完全正常工作的电子邮件。但是,它选择的电子邮件地址是配置中的一个(a@gmail.com),而不是我在MimeMessageHelper(b@gmail.com)中设置的那个.Below是我的配置文件:

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="host" value="${mail.host}" />
    <property name="port" value="${mail.port}" />
    <property name="username" value="${mail.username}" /> // a@gmail.com
    <property name="password" value="${mail.password}" />



    <property name="javaMailProperties">
        <props>
            <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
            <prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop>
        </props>
    </property>

</bean>

<bean id="mailSenderUtil" class="com.autoshipcart.payment.util.MailSenderUtil">
    <property name="mailSender" ref="mailSender"></property>
</bean>

这就是我的JAVA课程:

            MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
        helper.setTo(toEmailAddress);
        helper.setFrom(new InternetAddress(fromEmailAddress)); // b@gmail.com
        helper.setSubject(subject);
        helper.setText(text, ishtml);
        this.mailSender.send(mimeMessage);  

我甚至尝试过MimeMessagePreparator。请帮忙!

1 个答案:

答案 0 :(得分:3)

这不是你的java代码的问题。它的Gmail - 因为您通过您的Gmail帐户发送邮件,谷歌会将From地址覆盖到您的Gmail用户名。

如果您查看原始格式的已发送电子邮件及其所有标题 - 您将看到X-Google-Original-From,其中包含您在MimeMessage中设置的起始地址 - 但是“发件人”字段将是gmail用户名。