使用java发邮件,附jar包

本人小白,很多都是转载资料,只是学习研究一下!

需要用到发邮件的朋友可以看一下,我们需要用到三个包,分别是commos-

email.jar,javax.activation-1.1.0.jar,mail.jar,下面我已经给打家打包好了。

点我进百度云下载,我们以qq邮箱为例子我们先去qq邮箱的设置里面给自己开通SMTP服务,然后记好你的授权码,下面会要用到,好了下面上代码。

import java.io.Serializable;

/**
 * 邮件实体类
 */
public class Mail implements Serializable {
	/**
	 * 序列号
	 */
	private static final long serialVersionUID = -3562218214168975242L;
	/**
	 * 邮件编码s
	 */
	public static final String ENCODEING = "UTF-8";
	/**
	 * 服务器地址
	 */
	private String host;
	/**
	 * 服务器端口号
	 */
	private String portNumber;
	/**
	 * 发件人的邮箱
	 */
	private String sender;
	/**
	 * 收件人的邮箱
	 */
	private String receiver;
	/**
	 * 发件人昵称
	 */
	private String name;
	/**
	 * 账号
	 */
	private String username;
	/**
	 * 密码
	 */
	private String password;
	/**
	 * 主题
	 */
	private String subject;
	/**
	 * 信息(支持HTML)
	 */
	private String message;

	public String getHost() {
		return host;
	}

	public void setHost(String host) {
		this.host = host;
	}

	public String getSender() {
		return sender;
	}

	public String getPortNumber() {
		return portNumber;
	}

	public void setPortNumber(String portNumber) {
		this.portNumber = portNumber;
	}

	public void setSender(String sender) {
		this.sender = sender;
	}

	public String getReceiver() {
		return receiver;
	}

	public void setReceiver(String receiver) {
		this.receiver = receiver;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

}

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

/**
 * 邮件发送工具实现类
 */

public class MailUtil {

	public boolean send(Mail mail) {
		// 发送email对象
		HtmlEmail email = new HtmlEmail();
		try {
			// 这里是SMTP发送服务器的名字
			email.setHostName(mail.getHost());
			// 端口号不为空时,用户自定义的端口号为SMTP发送服务器端口号
			if (!"".equals(mail.getPortNumber())) {
				email.setSSLOnConnect(true);
				email.setSslSmtpPort(mail.getPortNumber());
			}
			// 字符编码集的设置
			email.setCharset(Mail.ENCODEING);
			// 收件人的邮箱
			email.addTo(mail.getReceiver());
			// 发送人的邮箱
			email.setFrom(mail.getSender(), mail.getName());
			// 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码
			email.setAuthentication(mail.getUsername(), mail.getPassword());
			// 要发送的邮件主题
			email.setSubject(mail.getSubject());
			// 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签
			email.setMsg(mail.getMessage());
			// 发送
			email.send();
			return true;
		} catch (EmailException e) {
			e.printStackTrace();
			return false;
		}
	}
}
package com.sas.email;

/**
 * 邮件测试类 QQ邮箱的测试可以使用,其他邮箱需要改几个地方:1.邮件服务器地址2.邮件服务器端口后3.账号4.密码,不一定时登录密码可能时授权码
 * QQ邮箱过程中出现错误,如果程序之前也可以运行成功的话,可以再次生成授权码,有这个原因的。还是不可以的话就请等一会,服务器也需要时间同步。
 */
public class SendEmail {
	public static void main(String[] args) {//发送一封简单的邮件
		Mail mail = new Mail();
		mail.setHost("smtp.qq.com"); // 设置邮件服务器,如果不用QQ邮箱的,自己找找看相关的
		mail.setPortNumber("465"); // 设置邮件服务器端口号,默认25
		mail.setSender("*******@qq.com"); // 发送人
		mail.setName("****"); // 发送人昵称
		mail.setReceiver("*****@qq.com"); // 接收人
		mail.setUsername("********@qq.com"); // 登录账号,一般都是和邮箱名一样
		mail.setPassword("******"); // QQ邮箱登录第三方客户端时,密码框请输入“授权码”进行验证。其他的密码具体查看邮件服务器的说明
		mail.setSubject("标题");
		mail.setMessage("邮件内容");
		if (new MailUtil().send(mail)) {
			System.out.println("发送成功");
		} else {
			System.out.println("发送失败");
		}
	}
}

亲测可用!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值