欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA编写发送126邮箱

程序员文章站 2022-06-16 08:46:57
...

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
注意
JAVA编写发送126邮箱
获取授权码
JAVA编写发送126邮箱
获取服务器地址
JAVA编写发送126邮箱

<?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("aaa@qq.com");
//        设置发给谁 邮件接收者
        mailMessage.setTo("aaa@qq.com");
//        设置邮件标题
        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("aaa@qq.com");
            //设置发给谁 邮件接收者
            messageHelper.setTo("aaa@qq.com");
            //设置邮件标题
            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("aaa@qq.com");
            //设置发给谁 邮件接收者
            messageHelper.setTo("aaa@qq.com");
            //设置邮件标题
            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("aaa@qq.com");
            //设置发给谁 邮件接收者
            messageHelper.setTo("aaa@qq.com");
            //设置邮件标题
            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("邮件发送成功");

    }
}