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("[email protected]");// 邮箱账号

            javaMailSender.setPassword("123456");// 密码

            MimeMessage mimeMessage = javaMailSender.createMimeMessage();

            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, false, "utf-8");

            mimeMessageHelper.setFrom(MimeUtility.encodeWord("[email protected]"));// 发送人

            mimeMessageHelper.setSubject("邮件标题");// 邮件标题

            mimeMessageHelper.setTo("[email protected]");// 收件人

            //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

你可能感兴趣的:(javamail)