zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    MySQL常用维护管理工具 枫
    sql触发器 枫
    MySQL函数大全 枫
    使用Cscope阅读Linux源码 枫
    ASP.NET文件下载,直接向客户端输出文件 枫
    网站设计数据库集群和数据库垂直分割,水平分割,库表散列 枫
    西点成品分类 枫
    asp函数列表 枫
    [笔记]一道C语言面试题:实现 itoa() 函数
    [笔记]Arduino平台使用US100超声波测距模块的电平模式测距实验
  • 原文地址:https://www.cnblogs.com/lyxy/p/4568820.html
Copyright © 2011-2022 走看看