美文网首页
JavaMail发送邮件

JavaMail发送邮件

作者: 七哥inn | 来源:发表于2018-12-19 20:04 被阅读0次

序:
最近谈了个单子,做某Model网站,有发送EDM的需求、爬虫的需求、支付宝…为了帮甲方赶时间,签约之前团队分工花了几天研究实现了部分功能。

几个功能倒是研究出来了,甲方借口一大堆,迟迟无法签约,伙伴们情绪低落…看来又帮人白做了一次前置需求和合同演练。刹那间万马奔腾,默默发克油~~

JavaMail 发送邮件

本文只谈邮件,爬虫(基于Python)等其他的研究成果之后再发文聊。

闲话不说,上代码

package com.facecto.demo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.test.context.junit4.SpringRunner;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.io.File;
import java.util.Properties;

以上是依赖包

@RunWith(SpringRunner.class)
@SpringBootTest

public class DemoApplicationTests {
    @Autowired
    private JavaMailSender mailSender;

第一个测试方法

这个是最基本的发送邮件代码

    @Test
    public  void send01() throws Exception{
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setFrom("test@facecto.com");
        helper.setTo("9876543210@qq.com");
        helper.setSubject("测试发送邮件");
        helper.setText("测试发送邮件");
        mailSender.send(mimeMessage);
    }

第二个测试方法

这个方法使用JavaMailSenderImpl发送

    @Test
    public  void send02() throws  Exception{
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("test@facecto.com");
        message.setTo("9876543210@qq.com");
        message.setSubject("主题:简单邮件");
        message.setText("测试邮件内容");
        message.setReplyTo("9876543210@qq.com");
        JavaMailSenderImpl sendimpl = new JavaMailSenderImpl();
        sendimpl.setHost("smtp.qq.com");
        sendimpl.setDefaultEncoding("UTF-8");
        sendimpl.setPassword("password");
        sendimpl.setPort(25);
        sendimpl.setUsername("test@qq.com");
        Properties prop = new Properties();
        prop.put("mail.smtp.auth","true");
        prop.put("mail.smtp.timeout","25000");
        sendimpl.setJavaMailProperties(prop);
        sendimpl.send(message);
    }

第三种方法

这种是EDM的发送方法

    @Test
    public void Send03() throws  Exception{
        String to = "test@qq.com";
        String from = "test@facecto.com";
        final String username = "test@facecto.com";
        final String password = "password";
        String host = "smtp.facecto.com";
        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.port", "25");

        Session session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                });
        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress(from));
        message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse(to));
        message.setSubject("标题");
        MimeMultipart multipart = new MimeMultipart("related");
        BodyPart messageBodyPart = new MimeBodyPart();
        String htmlText = "<H1>Hello,这里是html</H1><img src=\"cid:image\">";
        messageBodyPart.setContent(htmlText, "text/html");
        multipart.addBodyPart(messageBodyPart);
        messageBodyPart = new MimeBodyPart();
        DataSource fds = new FileDataSource(
                    "/web/mail/111.png");
        messageBodyPart.setDataHandler(new DataHandler(fds));
        messageBodyPart.setHeader("Content-ID", "<image>");
        multipart.addBodyPart(messageBodyPart);
        message.setContent(multipart);
        Transport.send(message);
    }

代码写完了,不对,还有最后一行

}

分享完了,也自己做个笔记。
本文还发到了www.facecto.com,技术需要大家一起玩。

相关文章

  • JavaMail

    JavaMail发送邮件工具类 }

  • Javamail发送邮件

    这几篇文章写的就挺好了,传送过去看看吧: 1、 使用JavaMail创建邮件和发送邮件 可能遇到的问题:1、因为端...

  • Javamail发送邮件

    1.添加Maven依赖 2.创建email.properties,设置发邮件邮箱的用户名密码 3.添加EmailA...

  • JavaMail发送邮件

    序:最近谈了个单子,做某Model网站,有发送EDM的需求、爬虫的需求、支付宝…为了帮甲方赶时间,签约之前团队分工...

  • 乐字节-Spring 邮件发送

    Spring 邮件发送 主要内容 JavaMail 概述 ​ JavaMail,顾名思义,提供给开发者处理电子邮件...

  • Internet-邮件协议SMTP/POP3/IMAP

    1.SMTP协议发送邮件 2.POP3协议接收邮件 3.JavaMail发送邮件(SMTP协议) 简书: http...

  • 阿里云 - 25端口封禁解决

    使用JavaMail发送邮件在阿里云服务器邮件发送失败 问题发现 问题产生: SpringBoot使用JavaMa...

  • 简书一

    spring boot 微服务整合javaMail,实现邮件发送 一、基础配置 1.引入邮件发送依赖 2.主配置文...

  • Java发送邮件-JavaMail

    【划水的鱼】网站注册采用的是短信验证的方式,采用的是阿里的短信sdk,最近想尝试采用邮箱验证的方式,于是整理一个相...

  • javaMail发送qq邮件(二):可发送抄送密送多人,支持附件

    关于javaMail发送邮件的详细教程可以看Java 发送邮件(菜鸟教程)本文的基础代码也来自这里。 关于实现的效...

网友评论

      本文标题:JavaMail发送邮件

      本文链接:https://www.haomeiwen.com/subject/bvrskqtx.html