使用Spring Mail发送QQ邮件

一.邮箱设置

  QQ邮箱设置:http://service.mail.qq.com/cgi-bin/help?id=28,

  下面这些服务需要开启(需要设置邮箱独立密码):

  

二.applicationContext.xml配置

  

   <bean id="sender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <!-- 主机(QQ的smtp服务器) -->
        <property name="host" value="smtp.qq.com"/>
        <!-- 邮箱名 -->
        <property name="username" value="12345678@qq.com"/>
        <!-- 独立密码 -->
        <property name="password" value="12345678"/>
        <property name="javaMailProperties">    
           <props>    
               <!-- 开启身份认证 -->
               <prop key="mail.smtp.auth">true</prop>    
               <!-- 使用默认端口 -->
               <prop key="mail.smtp.starttls.enable">true</prop>   
               <!-- 设置超时 -->
               <prop key="mail.smtp.timeout">25000</prop>    
           </props>    
       </property> 
    </bean>

三.编写测试类

public class UserActionTest {
    private ApplicationContext ctx;
    
    @Before
    public void setUp() throws Exception {
        ctx = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
    }

    @Test(timeout=10000)
    public void testExecute() {
        JavaMailSender sender = ctx.getBean("sender", JavaMailSender.class);
        System.out.println("测试发送邮件.....");
        MimeMessage message = sender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message);
        try {
            helper.setTo("87654321@qq.com");
            helper.setFrom("12345678@qq.com");
            helper.setSentDate(new Date());
            helper.setSubject("你好!测试成功!");
            helper.setText("北京时间:"+new Date());
            sender.send(message);
            System.out.println("正在发送邮件....");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

  运行测试类,如果显示"正在发送邮件....",且to的邮箱收到邮件,表明测试成功!

我遇到的问题就是手动设置了port,导致服务器一直没有响应,port不用设置,服务器会使用默认端口。

原文地址:https://www.cnblogs.com/manliu/p/4830977.html