日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Java發(fā)送郵件(圖片、附件、HTML)

 路人甲Java 2020-01-14

文章目錄

    • 一、簡介
    • 二、郵箱服務(wù)授權(quán)配置
    • 二、pom.xml依賴
    • 三、properties配置文件
    • 四、發(fā)送普通郵件
        • 1、web層代碼
        • 2、Service代碼
    • 二、發(fā)送Html格式郵件
        • 1、Web層代碼
        • 2、Service代碼
    • 三、發(fā)送Html帶圖片郵件
        • 1、Web層代碼
        • 2、Service層代碼
        • 3、封裝圖片路徑的實體類
    • 四、發(fā)送帶附件郵件
        • 1、Web層代碼
        • 2、Service層代碼
    • 八、完整代碼
        • 1、Web層代碼
        • 2、Service層代碼


一、簡介

要在網(wǎng)絡(luò)上實現(xiàn)郵件功能,必須要有專門的郵件服務(wù)器。這些郵件服務(wù)器類似于現(xiàn)實生活中的郵局,它主要負責接收用戶投遞過來的郵件,并把郵件投遞到郵件接收者的電子郵箱中。

SMTP服務(wù)器地址:

一般是 smtp.xxx.com,比如163郵箱是smtp.163.com,qq郵箱是smtp.qq.com。

SMTP協(xié)議:

通常把處理用戶smtp請求(郵件發(fā)送請求)的服務(wù)器稱之為SMTP服務(wù)器(郵件發(fā)送服務(wù)器)。
163郵箱

POP3協(xié)議

通常把處理用戶pop3請求(郵件接收請求)的服務(wù)器稱之為POP3服務(wù)器(郵件接收服務(wù)器)。

二、郵箱服務(wù)授權(quán)配置

163郵箱在:設(shè)置—POP3中,打開相應(yīng)的配置屬性;

QQ郵箱:設(shè)置—賬戶安全中,打開相應(yīng)的配置信息;

二、pom.xml依賴

   <!--郵件服務(wù)-->
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-mail</artifactId>
   </dependency>

   <dependency>
       <groupId>commons-net</groupId>
       <artifactId>commons-net</artifactId>
       <version>3.3</version>
   </dependency>

三、properties配置文件

#郵箱的賬號(163郵箱)
spring.mail.host= smtp.163.com
spring.mail.username=comlydms@163.com
spring.mail.password=158143484fs
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.starttls.enable=true
spring.mail.properties.mail.starttls.required=true

四、發(fā)送普通郵件

1、web層代碼

    /**
     * 測試普通郵件調(diào)用
     */
    @RequestMapping(value = "/simpleEmail", method = {RequestMethod.POST})
    public ApiResult sendSimpleEmail() {

        mailService.sendSimpleMail("395096666@qq.com", "這是一個測試郵件", "這是一個測試郵件");
        return ApiResult.succ("調(diào)用成功");
    }

2、Service代碼

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private JavaMailSender sender;

    @Value("${spring.mail.username}")
    private String fromMail;

    /**
     * 發(fā)送普通郵件
     *
     * @param toMail  收件方
     * @param subject 標題
     * @param content 郵件內(nèi)容
     */
    public void sendSimpleMail(String toMail, String subject, String content) {
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setFrom(fromMail);
        simpleMailMessage.setTo(toMail);
        simpleMailMessage.setSubject(subject);
        simpleMailMessage.setText(content);
        try {
            sender.send(simpleMailMessage);
            logger.info("發(fā)送給:{}簡單郵件已經(jīng)發(fā)送。 subject:{}", toMail, subject);
        } catch (Exception e) {
            logger.info("發(fā)送給:{}send mail error subject:{}", toMail, subject);
            e.printStackTrace();
        }
    }

二、發(fā)送Html格式郵件

1、Web層代碼

   /**
     * 測試Html格式調(diào)用
     */
    @RequestMapping(value = "/htmlEmail", method = {RequestMethod.POST})
    public ApiResult sendHtmlEmail() {

//        1、拼接模擬的數(shù)據(jù)
        English english = new English();
        english.setEnglish("my");
        english.setChinese("我的");
        english.setCodechinese("自己的東西");
        ArrayList<English> en = new ArrayList<>();
        en.add(english);
        en.add(english);

//        2.1、寫html開始內(nèi)容
        String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><font color=\"red\">定時發(fā)送</font><table border=\"1\"><tr><th>英文</th><th>標準注解</th><th>代碼中注解</th></tr>";
//        2-2、表html中間內(nèi)容
        String prime = "";
        for (int i = 0; i < en.size(); i++) {
            English english1 = en.get(i);
            String center = "<tr><td>English</td><td>Chinese</td><td>CodeChinese</td></tr>";
            String one = center.replaceFirst("English", english1.getEnglish());
            String two = one.replaceFirst("Chinese", english1.getChinese());
            String result = two.replaceFirst("CodeChinese", english1.getCodechinese());
            prime = prime + result;

        }
//        2-3、寫html結(jié)尾內(nèi)容
        String end = "</table></body></html>";
//        3、拼接html
        String html = start + prime + end;
//        4、發(fā)送郵件
        mailService.sendHtmlMail("395096666@qq.com", "定時郵件發(fā)送", html);

        return ApiResult.succ("調(diào)用成功");
    }

2、Service代碼

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private JavaMailSender sender;

    @Value("${spring.mail.username}")
    private String fromMail;

    /**
     * 發(fā)送帶Html格式郵件
     *
     * @param toMail  收件方
     * @param subject 標題
     * @param content 郵件內(nèi)容
     */
    public void sendHtmlMail(String toMail, String subject, String content) {
//        1、封裝數(shù)據(jù)
        MimeMessage mimeMessage = sender.createMimeMessage();
        try {
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);
            mimeMessageHelper.setTo(toMail);
            mimeMessageHelper.setFrom(fromMail);
            mimeMessageHelper.setText(content, true);
            mimeMessageHelper.setSubject(subject);

//            2、發(fā)送郵件
            sender.send(mimeMessage);
            logger.info("發(fā)送給:{}html郵件已經(jīng)發(fā)送。 subject:{}", toMail, subject);
        } catch (Exception e) {
            logger.info("發(fā)送給:{}html send mail error subject:{}", toMail, subject);
            e.printStackTrace();
        }
    }

三、發(fā)送Html帶圖片郵件

1、Web層代碼

   /**
     * 測試Html帶圖片
     */
    @RequestMapping(value = "/htmlPotoEmail", method = {RequestMethod.POST})
    public ApiResult sendHtmlPoto() {
//        1、創(chuàng)建html格式的數(shù)據(jù)
        String html = "<!DOCTYPE html>\r\n" +
                "<html>\r\n" +
                "<head>\r\n" +
                "<meta charset=\"UTF-8\">\r\n" +
                "<title>Insert title here</title>" +
                "\r\n" +
                "</head>\r\n" +
                "<body>\r\n" +
                "<img src=\"cid:image1\"/> " +
                "<img src=\"cid:image2\"/> " +
                "	<font color=\"red\">發(fā)送html</font>\r\n" +
                "</body>\r\n" +
                "</html>";
//        2、封裝html中的圖片數(shù)據(jù)
        List<InlineResource> list = new ArrayList<>();
//        2-1獲取圖片的地址
        String path = WordSmsController.class.getClassLoader().getResource("image.jpg").getPath();
//        2-2、將圖片的地址封裝到實體類中
        InlineResource resource = new InlineResource("image1", path);
        InlineResource resource2 = new InlineResource("image2", path);
        list.add(resource2);
        list.add(resource);

//        3、發(fā)送郵件
        mailService.sendHtmlPhotoMail("395096666@qq.com", "這是一個測試郵件", html, list);

        return ApiResult.succ("調(diào)用成功");
    }

2、Service層代碼

    private final Logger logger = LoggerFactory.getLogger(this.getClass());

    @Autowired
    private JavaMailSender sender;

    @Value("${spring.mail.username}")
    private String fromMail;

   /**
     * 發(fā)送靜態(tài)資源(一般是圖片)的郵件
     *
     * @param
     * @param subject
     * @param content 郵件內(nèi)容,需要包括一個靜態(tài)資源的id,比如:<img src=\"cid:image\" >
     * @param
     */
    public void sendHtmlPhotoMail(String to, String subject, String content, List<InlineResource> resourceist) {

//            1、編寫發(fā)送的數(shù)據(jù)
        MimeMessage me

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多