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

转载于:https://www.cnblogs.com/lyxy/p/4568820.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值