JAVA代码实现发送邮件

  • 前言
  • J2EE前台发送邮件
  • 代码实现
  • 下载并加载JavaMail API


前言

今天跟大家分享一篇,发送电子邮件的博文
使用了java+jsp+servlet
源码可在下方链接下载
链接:https://pan.baidu.com/s/1YF2mvR0fhy95kcv83ER_hw?pwd=z5b1.
提取码:z5b1

实现功能以下!!
1、 J2EE前台发送邮件
2、Java代码后台实现发送邮件

J2EE前台发送邮件

我们以结果为导向

运行截图

java 邮件状态 java实现邮件发送功能代码_jar

java 邮件状态 java实现邮件发送功能代码_java 邮件状态_02


手机接收到的邮件

java 邮件状态 java实现邮件发送功能代码_java 邮件状态_03

java 邮件状态 java实现邮件发送功能代码_发送邮件_04

代码实现

1.新建Dynamic Web Project工程

2.引入mail.jar和activation.jar

3.项目目录结构如图

java 邮件状态 java实现邮件发送功能代码_java_05


4.配置发件人163邮箱的SMTP服务器、账户以及密码等参数

java 邮件状态 java实现邮件发送功能代码_发送邮件_06


mail.properties配置文件

java 邮件状态 java实现邮件发送功能代码_jar_07


编写身份身份验证类

用来验证SMTP服务器身份。程序继承了Authenticator类,它主要用来实现登录邮件服务器时的认证。它包含两个属性:username和password,分别用来存储认证时所需的用户名和密码信息。

package com.liuchunming.mail;

import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;

public class Auth extends Authenticator {

	private String username = "";
	private String password = "";

	public Auth(String username, String password) {
		this.username = username;
		this.password = password;
	}
	public PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(username, password);
	} 
}

发送邮件类
SendMail实现对发送邮件身份的认证,获得Session对象。该方法中SMTPHost、Port、MailUsername、MailPassword分别表示所使用的SMTP服务器、服务器的smtp端口、用户名和密码。sendingMimeMail()方法为发送邮件的方法,在该方法需要传入的参数中,MailFrom为发件人电子信箱,MailTo为收件人电子信箱,MailCopyTo为抄送人电子信箱,MailBCopyTo为暗送人电子信箱,MailSubject为发送邮件主题,MailBody为发送邮件正文。sendingMimeMail()返回boolean类型,表示是否发送成功。发送邮件时先调用构造方法SendMail()创建邮件发送对象,然后调用sendingMimeMail()方法发送。

package com.liuchunming.mail;

import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class SendMail {

	private Properties props; //系统属性
	private Session mailSession; //邮件会话对象
	private MimeMessage mimeMsg; //MIME邮件对象

	public SendMail(String SMTPHost, String Port, String MailUsername, String MailPassword) {
		Auth au = new Auth(MailUsername, MailPassword);
		//设置系统属性
		props=java.lang.System.getProperties(); //获得系统属性对象
		props.put("mail.smtp.host", SMTPHost); //设置SMTP主机
		props.put("mail.smtp.port", Port); //设置服务端口号
		props.put("mail.smtp.auth", "true"); //同时通过验证
		//获得邮件会话对象 
		mailSession = Session.getInstance(props, au);
	}
  
	public boolean sendingMimeMail(String MailFrom, String MailTo,
			String MailCopyTo, String MailBCopyTo, String MailSubject,
			String MailBody) {
		try { 
			//创建MIME邮件对象
			mimeMsg=new MimeMessage(mailSession);
			//设置发信人
			mimeMsg.setFrom(new InternetAddress(MailFrom));
			//设置收信人
			if(MailTo!=null){
				mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(MailTo));
			} 
			//设置抄送人
			if(MailCopyTo!=null){
				mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,InternetAddress.parse(MailCopyTo));
			}
			//设置暗送人
			if(MailBCopyTo!=null){
				mimeMsg.setRecipients(javax.mail.Message.RecipientType.BCC,InternetAddress.parse(MailBCopyTo));
			}
			//设置邮件主题 
			mimeMsg.setSubject(MailSubject,"gb2312");
			//设置邮件内容,将邮件body部分转化为HTML格式
			mimeMsg.setContent(MailBody,"text/html;charset=gb2312");
			//发送邮件
			Transport.send(mimeMsg);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
}

写SendDemo类进行测试

package com.liuchunming.demo;

import com.zhi.mail.SendMail;

public class SendDemo {

	/**
	 * 可直接运行主方法
	 * @param args
	 */
	public static void main(String[] args) {
		String SMTPHost="smtp.163.com";
		String Port="25";
		String MailUsername=""; //发送邮件账号
		String MailPassword=""; //密码
		SendMail sendMail=new SendMail(SMTPHost,Port,MailUsername,MailPassword);
		
		String MailFrom=""; //发件人
		String MailTo=""; //收件人
		String MailCopyTo=null; //抄送人
		String MailBCopyTo=null; //暗送人
		String MailSubject="JavaSE发送邮件测试"; //邮件主题
		String MailBody="引用mail.jar和activation.jar实现邮件发送!"; //邮件内容
		
		//发送邮件
		boolean isSend=sendMail.sendingMimeMail(MailFrom, MailTo, MailCopyTo, MailBCopyTo, MailSubject, MailBody);
		if(isSend){
			System.out.println("邮件发送成功");
		}else{
			System.out.println("邮件发送失败");
		}
	}

}

运行main主方法发送邮件

java 邮件状态 java实现邮件发送功能代码_java 邮件状态_08


java 邮件状态 java实现邮件发送功能代码_发送邮件_09

下载并加载JavaMail API

JavaMail API目前的版本为JavaMail API 1.4.3。可以从如下地址下载:

http://java.sun.com/products/javamail/downloads/index.html 下载后,建立jarFile文件夹,贴入mail.jar和activation.jar文件并且Add to Build Path

java 邮件状态 java实现邮件发送功能代码_jar_10


java 邮件状态 java实现邮件发送功能代码_jar_11


end…