Fork me on GitHub

Spring发送邮件

没有什么好说的,如下几种方式

文本邮件
HTML邮件
带附件邮件
Freemaker或Velocity模板方式

贴代码

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="
     http://www.springframework.org/schema/beans
     http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
     http://www.springframework.org/schema/aop
     http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
    <!-- 邮件发送者参数-->
    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.163.com" />
        <property name="username" value="xxx@163.com" />
        <property name="password" value="xxxx/>
        <property name="defaultEncoding" value="UTF-8" />
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.timeout">25000</prop>
                <prop key="mail.smtp.port">465</prop>
                <prop key="mail.smtp.socketFactory.port">465</prop>
                <prop key="mail.smtp.socketFactory.fallback">false</prop>
                <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
            </props>
        </property>
    </bean>
</beans>
复制代码
复制代码
@Controller
public class EmailController {
    private static Logger logger = LogManager.getLogger(EmailController.class);
    @Resource
    private JavaMailSender sender;
    @Resource
    private JavaMailSenderImpl senderImpl;

    @RequestMapping("/sendtext.shtml")
    public void sendText() {
        SimpleMailMessage mail = new SimpleMailMessage();
        mail.setTo("xxx@qq.com");
        mail.setFrom("xxx@163.com");
        mail.setSubject("spring mail test!");
        mail.setText("springMail的简单发送测试");
        sender.send(mail);
        logger.info("邮件发送成功啦。。。。。。。。。。。");
    }

    @RequestMapping("/sendhtml.shtml")
    public void sendHtml() throws MessagingException {
        StringBuilder builder = new StringBuilder();
        builder.append("<html><head>");
        builder.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />");
        builder.append("</head><body>");
        builder.append("您好,张三:<br /> <a href='#nolink' style='color: red'>点击此处</a>");
        builder.append("\t系统已为您重置了RUI密码, 账户信息如下:<br />");
        builder.append("用户账户:zhangsan<br />用户密码:123456<br />您可以点击以下链接登录RUI:");
        builder.append("<a href=\"");
        builder.append("\">");
        builder.append("</a>");
        builder.append("</body></html>");
        MimeMessage mailMessage = senderImpl.createMimeMessage();
        MimeMessageHelper messageHelper = new MimeMessageHelper(mailMessage, true, "UTF-8");
        messageHelper.setTo("xxx@qq.com");
        messageHelper.setFrom("xxx@163.com");
        messageHelper.setSubject("spring mail Html Test");
        messageHelper.setText(builder.toString(), true);
        sender.send(mailMessage);
    }

    @RequestMapping("/sendfile.shtml")
    public void sendFile() throws UnsupportedEncodingException, MessagingException {
        MimeMessage mimeMessage = senderImpl.createMimeMessage();
        MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
        messageHelper.setTo("xxx@qq.com");
        messageHelper.setFrom("xxx@163.com");
        messageHelper.setSubject("spring mail File Test");
        messageHelper.setText("<html><head></head><body><h1>hello!!Irving </h1></body></html>", true);
        
        messageHelper.addInline("Iphone", new File("H:/苹果.jpg"));
        
        FileSystemResource filePhoto = new FileSystemResource(new File("H:/妹子.jpg")); 
        messageHelper.addAttachment(filePhoto.getFilename(), filePhoto);

        File docFile = new File("F:/杂合集书籍/129道经典.NET笔试题.doc");
        messageHelper.addAttachment(MimeUtility.encodeWord(docFile.getName()), docFile);
        
        File pdfFile = new File("F:/杂合集书籍/GridView+72般绝技.pdf");
        messageHelper.addAttachment(MimeUtility.encodeWord(pdfFile.getName()), pdfFile);
        
        File rarFile = new File("F:/Visual C#.NET网络编程.rar");
        messageHelper.addAttachment(MimeUtility.encodeWord(rarFile.getName()), rarFile);
        sender.send(mimeMessage);
    }
}
复制代码

结果

image

模板的方式还没有用到,有时间再参考文档

Refer:

http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/mail.html

posted @   花儿笑弯了腰  阅读(395)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示