我正在收到我的Gmail帐户上的电子邮件,但是来自我自己而不是该人的电子邮件地址,即使我在实施班中对其进行了硬编码,因为message.setFrom("somebody@hotmail.com");
仍然无效。有什么想法吗?
@Service("mailService")
public class MailService {
@Autowired
private MailSender mailSender;
@Autowired
private SimpleMailMessage alertMailMessage;
public void sendMail(String from, String to, String subject, String body) {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(body);
mailSender.send(message);
}
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com"/>
<property name="port" value="25"/>
<property name="username" value="xxx@gmail.com"/>
<property name="password" value="xxxx"/>
<property name="javaMailProperties">
<props>
<!-- Use SMTP transport protocol -->
<prop key="mail.transport.protocol">smtp</prop>
<!-- Use SMTP-AUTH to authenticate to SMTP server -->
<prop key="mail.smtp.auth">true</prop>
<!-- Use TLS to encrypt communication with SMTP server -->
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>
答案 0 :(得分:0)
我不认为这是一个Spring问题,而是一个Gmail安全功能。 您基本上都是尝试通过Gmail发送电子邮件,其中有很多&#34;来自&#34;使用Spring?
IMAP / POP用户请注意:如果您通过POP或IMAP访问Gmail 电子邮件客户端(例如Outlook),并希望发送带有的邮件 习惯&#34;来自&#34;地址,你有两个选择。我们建议你 使用两个外发SMTP服务器配置电子邮件客户端,一个用于 Gmail和一个用于您的其他地址。
或者,您可以使用Gmail的出站 具有不同&#34;来自&#34;的服务器地址。如果您已配置 备用地址,您的消息将被发送 来自:otheraddress@domain.com,发件人:username@gmail.com,无论如何 您选择的配置中的哪个自定义。
定制&#39;来自:&#39;功能仅在您已拥有该帐户时才有效 链接到备用地址。使用其他Gmail发送邮件 用户名,您必须先注册该地址。
要实现这一点,您必须先在Gmail帐户中配置这些电子邮件地址。 一个配置,发送的电子邮件应该类似于:
来自:somebody@hotmail.com 发件人:xxx@gmail.com
在电子邮件客户端/网络邮件用户界面中,您的收件人会阅读以下内容:
来自somebody@hotmail.com,来自xxx@gmail.com
因此,原始发件人地址始终显示。