JavaMail发送邮件代码

什么是JavaMail?

JavaMail是Java平台上的一个API,用于实现电子邮件相关的功能。                                               它提供了发送、接收和处理电子邮件的能力,可以用于构建邮件客户端或邮件服务器应用程序。JavaMail API支持多种邮件协议,包括SMTP、POP3和IMAP,并且可以与不同的邮件服务器进行交互。

(1)向单个用户发送邮箱 

import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.apesource.util.JavaMailUtils;
// 发送普通文本内容的邮件
public class Main {
	public static void main(String[] args) {
		try {
			// 1.创建Session会话
			Session session = JavaMailUtils.createSession();
			
			// 2.创建邮件对象
			MimeMessage message = new MimeMessage(session);
			message.setSubject("这是一封测试邮件,别害怕!"); // 设置邮件标题
			message.setText("爱你孤身走暗巷,爱你走得很安详!"); // 设置邮件正文
			message.setFrom(new InternetAddress("billgogoogooo@126.com")); // 发件人
			message.setRecipient(RecipientType.TO, new InternetAddress("55094839@qq.com")); // 收件人
			
			// 3.发送
			Transport.send(message);
			
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
}

(2)向多个用户发送邮箱 

import java.net.InetAddress;

import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import com.apesource.util.JavaMailUtils;

// 抄送多个邮箱地址
// 邮件内容包含HTML标签
public class Main {
	public static void main(String[] args) {
		try {
			// 1.创建Session会话
			Session session = JavaMailUtils.createSession();
			
			// 2.创建MimeMessage邮件对象
			MimeMessage message = new MimeMessage(session);
			message.setFrom(new InternetAddress("billgogoogooo@126.com")); // 发件人
			message.setRecipient(RecipientType.TO, new InternetAddress("55094839@qq.com")); // 收件人
			message.setRecipients(RecipientType.CC, new InternetAddress[] {new InternetAddress("55094839@qq.com"),new InternetAddress("1423161910@qq.com")}); // 群发(抄送多人)
			message.setSubject("测试邮件");
			
			// 邮件正文中包含html标签
			message.setText("你被<b>太阳</b>照耀的时候,也温暖着自己!","utf-8","html");
			
			// 3.发送邮件
			Transport.send(message);
		} catch (AddressException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (MessagingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

 

(3)邮件中既包含正文,又包含附件

import javax.mail.Session;
import javax.mail.Transport;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

import javax.activation.DataHandler;
import javax.mail.BodyPart;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.util.ByteArrayDataSource;

import com.apesource.util.JavaMailUtils;

// 发送带有"附件"的邮件
public class Main {
	public static void main(String[] args) {
		try {
			// 1.创建Session会话
			Session session = JavaMailUtils.createSession();
			
			// 2.创建MimeMessage邮件对象
			MimeMessage message = new MimeMessage(session);
			message.setFrom(new InternetAddress("billgogoogooo@126.com")); // 发件人
			message.setRecipient(RecipientType.TO, new InternetAddress("55094839@qq.com")); // 收件人
			message.setRecipients(RecipientType.CC, new InternetAddress[] {new InternetAddress("55094839@qq.com"),new InternetAddress("1423161910@qq.com")}); // 群发(抄送多人)
			message.setSubject("鸡汤邮件"); // 邮件标题
			
			// 邮件仅包含正文
			// message.setText("用脑子干事算是工作,不用脑子的只能算是动作!");
			
			// 邮件中既包含正文,又包含附件
			// 正文
			BodyPart textPart = new MimeBodyPart();
			textPart.setContent("用<b>脑子</b>干事算是工作,不用<b>脑子</b>的只能算是动作!", "text/html;charset=utf-8");
			
			// 附件
			BodyPart filePart = new MimeBodyPart();
			filePart.setFileName("李云龙阁下"); // 附件文件显示名称
			// 上传附件文件
			filePart.setDataHandler(
						new DataHandler(
								new ByteArrayDataSource(
										Files.readAllBytes(Paths.get("C:\\Users\\APESOURCE\\Pictures\\douban\\p900419027.jpg")), 
										"application/octet-stream")));
			// 将正文+附件组装成Multipart对象
			Multipart multipart = new MimeMultipart();
			multipart.addBodyPart(textPart);
			multipart.addBodyPart(filePart);
			
			// 将Multipart对象放入邮件
			message.setContent(multipart);
			
			// 3.发送邮件
			Transport.send(message);
		} catch (AddressException e) {
			e.printStackTrace();
		} catch (MessagingException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

(4)邮件中正文显示图片

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;

import javax.activation.DataHandler;
import javax.mail.BodyPart;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.util.ByteArrayDataSource;

public class Main {
	public static void main(String[] args) {
		try {
			//1.创建会话
			Session session = JavaMailUtils.createSession();
			//2.创建邮件对象
			MimeMessage message = new MimeMessage(session);

			message.setFrom(new InternetAddress("1710311450@qq.com"));//发件人
			message.setRecipient(RecipientType.TO, new InternetAddress("18691295798@163.com"));//主收件人
			message.setRecipients(RecipientType.CC, new InternetAddress[] { new InternetAddress("3377025096@qq.com") });//抄送
			
			//邮件正文
			//正文
			BodyPart textPart = new MimeBodyPart();
			StringBuilder sb = new StringBuilder();
			sb.append("<h1>hognzhu<h1>");
			sb.append("<h1>猪猪侠<h1>");
			sb.append("<img src\"cid:hz\"/>");//添加图片
			//将StringBuilder放入textPart
			textPart.setContent(sb.toString(),"text/html;charset=utf-8");

			//上传图片
			BodyPart img = new MimeBodyPart();
			img.setDataHandler(new DataHandler(
									new ByteArrayDataSource(
									Files.readAllBytes(Paths.get("/Users/liyangyang/Downloads/1.jpg"))
									,"application/octet-stream")));
			//图片内容的ID
			img.setHeader("Content-ID", "hz");
			
			//将正文封装在Multiparty对象
			Multipart multipart = new MimeMultipart();
			multipart.addBodyPart(textPart);
			
			//将multiparty对象放入邮箱
			message.setContent(multipart);
			
			//发送邮件
			Transport.send(message);
		} catch (MessagingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lcannal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值