Spring 3.0 SimpleMailMessage支持

时间:2011-12-08 10:53:32

标签: spring gmail javamail

我正在收到我的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>

1 个答案:

答案 0 :(得分:0)

我不认为这是一个Spring问题,而是一个Gmail安全功能。 您基本上都是尝试通过Gmail发送电子邮件,其中有很多&#34;来自&#34;使用Spring?

Gmail support pages说:

  

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

因此,原始发件人地址始终显示。