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
注意
获取授权码
获取服务器地址
<?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("邮件发送成功");
}
}