JAVA編寫發送126郵箱

1.引入依賴

  <dependencies>
        <!--上下文支持包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>4.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>compile</scope>
        </dependency>
        <!--方便將文件內容以String類型讀出-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
    </dependencies>

2.創建一個spring的配置文件

applicationContext-mail.xml
注意
在這裏插入圖片描述
獲取授權碼
在這裏插入圖片描述
獲取服務器地址
在這裏插入圖片描述

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="mailSend"  class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <!--郵件發送服務器的地址-->
        <!--126首頁 設置 POP3/SMTP/IMAP 最下面 SMTP服務器-->
        <property name="host" value="smtp.126.com"/>
        <!--發送郵件賬號-->
        <property name="username" value="填你的郵箱"/>
        <!--客戶端授權碼-->
        <!--126首頁 設置 POP3/SMTP/IMAP 最上面 POP3/SMTP服務  開啓 然後獲取該值-->
        <property name="password" value="填你自己的"/>
        <!--設置郵件的編碼格式-->
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="javaMailProperties">
            <props>
                <!--是否開啓用戶身份驗證-->
                <prop key="mail.smtp.auth">true</prop>
                <!--發送郵件超時時間-->
                <prop key="mail.smtp.timeout">30000</prop>
            </props>
        </property>
    </bean>

</beans>

3.編寫測試方法

這裏寫了四個測試類,包含了不同的發送方式

最基本的郵件發送
import org.junit.runner.RunWith;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;


//最基本的郵件發送
public class JavaMailSendDemo {

    public static void main(String[] args) {
//        手動加載spring環境
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext*.xml");
//        根據上下文 從spring環境獲取創建郵件發送對象
        JavaMailSender mailSender = (JavaMailSender)context.getBean("mailSend");
//        1.發送最簡單郵件
        SimpleMailMessage mailMessage = new SimpleMailMessage();
//        設置郵件屬性  發送者郵件地址
        mailMessage.setFrom("[email protected]");
//        設置發給誰 郵件接收者
        mailMessage.setTo("[email protected]");
//        設置郵件標題
        mailMessage.setSubject("哈哈哈你好啊");
//        設置郵件正文
        mailMessage.setText("今天天氣真不錯啊,小老弟");
//        調用郵件發送對象,發送郵件
        mailSender.send(mailMessage);
        System.out.println("郵件發送成功");

    }

}

攜帶附件發送
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;


//攜帶附件發送
public class JavaMailSendDemo2 {
    public static void main(String[] args) {
//        手動加載spring環境
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext*.xml");
//        根據上下文 從spring環境獲取創建郵件發送對象
        JavaMailSender mailSender = (JavaMailSender)context.getBean("mailSend");
        //創建支持附件郵件對象
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        try {
            //創建郵件發送助手類
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
            //設置郵件屬性  發送者郵件地址
            messageHelper.setFrom("[email protected]");
            //設置發給誰 郵件接收者
            messageHelper.setTo("[email protected]");
            //設置郵件標題
            messageHelper.setSubject("哈哈哈你好啊");
            //設置郵件正文  兩種  1.不支持Html語法的  2.支持Html語法的
           // messageHelper.setText("今天天氣真不錯啊,小老弟");
            //後面加true後,就支持Html語法
            messageHelper.setText("<h1>今天天氣真不錯啊,小老弟</h1>",true);


            //找到需要發送的文件
            File file1 = new File("D:\\1.png");
            //將文件關聯到發送體
            messageHelper.addAttachment("1.png",file1);



        } catch (MessagingException e) {
            e.printStackTrace();
        }

//        調用郵件發送對象,發送郵件
        mailSender.send(mimeMessage);
        System.out.println("郵件發送成功");

    }
}

指定本地圖片嵌入到正文中發送
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;


//圖片嵌入到正文中

public class JavaMailSendDemo3 {
    public static void main(String[] args) {
//        手動加載spring環境
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext*.xml");
//        根據上下文 從spring環境獲取創建郵件發送對象
        JavaMailSender mailSender = (JavaMailSender)context.getBean("mailSend");
        //創建支持附件郵件對象
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        try {
            //創建郵件發送助手類
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
            //設置郵件屬性  發送者郵件地址
            messageHelper.setFrom("[email protected]");
            //設置發給誰 郵件接收者
            messageHelper.setTo("[email protected]");
            //設置郵件標題
            messageHelper.setSubject("哈哈哈你好啊");
            //設置內容   注意 cid:  是語法 後面跟設置的嵌入圖片的屬性名
            messageHelper.setText("<h1>今天天氣真不錯啊,小老弟</h1><img src='cid:log'></img>",true);
            //找到需要發送的文件
            File file1 = new File("D:\\1.png");
            //把圖片嵌入到郵件正文
            messageHelper.addInline("log",file1);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
//        調用郵件發送對象,發送郵件
        mailSender.send(mimeMessage);
        System.out.println("郵件發送成功");

    }
}

讀取本地文件以文本形式發送郵件
import org.apache.commons.io.IOUtils;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import sun.nio.ch.IOUtil;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
import java.io.FileInputStream;


//讀取本地文件以文本形式發送郵件
public class JavaMailSendDemo4 {
    public static void main(String[] args) {
//        手動加載spring環境
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:applicationContext*.xml");
//        根據上下文 從spring環境獲取創建郵件發送對象
        JavaMailSender mailSender = (JavaMailSender)context.getBean("mailSend");
        //創建支持附件郵件對象
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        try {
            //創建郵件發送助手類
            MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
            //設置郵件屬性  發送者郵件地址
            messageHelper.setFrom("[email protected]");
            //設置發給誰 郵件接收者
            messageHelper.setTo("[email protected]");
            //設置郵件標題
            messageHelper.setSubject("哈哈哈你好啊");
            //使用commons工具類來讀取文件,String類型接收,如果文本里面要替換圖片可以使用cid:log
            String text = IOUtils.toString(new FileInputStream("D:\\1.txt"),"UTF-8");
            //設置內容   注意 cid:  是語法 後面跟設置的嵌入圖片的屬性名
            messageHelper.setText(text,true);


            //找到需要發送的文件
            File file1 = new File("D:\\1.png");
            //把圖片嵌入到郵件正文
            messageHelper.addInline("log",file1);
        } catch (Exception e) {
            e.printStackTrace();
        }
//        調用郵件發送對象,發送郵件
        mailSender.send(mimeMessage);
        System.out.println("郵件發送成功");

    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章