• Spring的javaMail邮件发送(带附件)


    项目中经常用到邮件功能,在这里简单的做一下笔记,方便日后温习。

    首先需要在配置文件jdbc.properties添加:

    #------------ Mail ------------
    mail.smtp.auth=true
    mail.smtp.timeout=25000
    mail.smtp.starttls.enable=false

    二、配置applicationContext.xml文件

    <!-- 邮件发送 -->
        <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
            <property name="javaMailProperties">
                <props>
                    <!-- SMTP服务器是否需要用户认证,默认为false -->
                    <prop key="mail.smtp.auth">${mail.smtp.auth}</prop>
                    <!-- I/O连接超时时间,单位为毫秒,默认为永不超时 -->
                    <prop key="mail.smtp.timeout">${mail.smtp.timeout}</prop>
                    <!-- starttls验证 -->
                    <prop key="mail.smtp.starttls.enable">${mail.smtp.starttls.enable}</prop>
                </props>
            </property>
        </bean>

    三、在ServiceImpl声明注入

        @Resource(name = "javaMailSender")
        private JavaMailSenderImpl javaMailSender;

    四、方法的调用

    try {
                javaMailSender.setHost("smtp.163.com");
                javaMailSender.setPort(25);
                javaMailSender.setUsername("test_mail@163.com");// 邮箱账号
                javaMailSender.setPassword("123456");// 密码
                MimeMessage mimeMessage = javaMailSender.createMimeMessage();
                MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, false, "utf-8");
                mimeMessageHelper.setFrom(MimeUtility.encodeWord("test_mail@163.com"));// 发送人
                mimeMessageHelper.setSubject("邮件标题");// 邮件标题
                mimeMessageHelper.setTo("12345678@qq.com");// 收件人
                //mimeMessageHelper.setText("邮件内容", false);// 邮件内容,第二个参数表示是否发送的是HTML格式,true表示是,false表示否
                // 添加邮件正文
                MimeMultipart multipart = new MimeMultipart();
                BodyPart contentPart = new MimeBodyPart();
                contentPart.setContent("这里是邮件内容,测试邮件内容。", "text/html;charset=UTF-8");
                multipart.addBodyPart(contentPart);
                // 添加附件
                String[] paths = { "D:\1024.png", "D:\text.txt" };
                for (String filePath : paths) {
                    MimeBodyPart part = new MimeBodyPart();
                    FileDataSource fds = new FileDataSource(filePath);
                    part.setFileName(MimeUtility.encodeWord(fds.getName()));// MimeUtility.encodeWord文件名解决中文乱码
                    part.setDataHandler(new DataHandler(fds));
                    multipart.addBodyPart(part);
                }
                mimeMessage.setContent(multipart);
    
                javaMailSender.send(mimeMessage);//发送
    
            } catch (MessagingException e) {
                e.printStackTrace();
            }

     注:所需包 activation.jar、mail-1.4.4.jar、spring.jar

  • 相关阅读:
    那是什么进程 —— svchost.exe是什么? 它为何运行?
    共享一下我的博客皮肤
    C#3.0亮点 —— 关键字var和匿名类型
    改善代码设计 —— 优化物件之间的特性(Moving Features Between Objects)
    C#3.0亮点 —— 分部方法
    解决C#中一个"异步方法却同步执行"的问题
    改善代码设计 —— 简化函数调用(Making Method Calls Simpler)
    改善代码设计 —— 总结篇(Summary)
    理解A*寻路算法具体过程
    改善代码设计 —— 组织好你的数据(Composing Data)
  • 原文地址:https://www.cnblogs.com/lyxy/p/4568820.html
Copyright © 2020-2023  润新知