我正在尝试在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。请帮忙!
答案 0 :(得分:3)
这不是你的java代码的问题。它的Gmail - 因为您通过您的Gmail帐户发送邮件,谷歌会将From
地址覆盖到您的Gmail用户名。
如果您查看原始格式的已发送电子邮件及其所有标题 - 您将看到X-Google-Original-From
,其中包含您在MimeMessage中设置的起始地址 - 但是“发件人”字段将是gmail用户名。