使用java发邮件,附jar包

使用java发邮件,附jar包本人小白,很多都是转载资料,只是学习研究一下!需要用到发邮件的朋友可以看一下,我们需要用到三个包,分别是commos-email.jar,javax.activation-1.1.0.jar,mail.jar,下面我已经给打家打包好了。点我进百度云下载,我们以qq邮箱为例子我们先去qq邮箱的设置里面给自己开通SMTP服务,然后记好你的授权码,下面会要用到,好了下面上代码。importj…

大家好,又见面了,我是你们的朋友全栈君。

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

需要用到发邮件的朋友可以看一下,我们需要用到三个包,分别是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("发送失败");
		}
	}
}

亲测可用!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/146699.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • unbuntu安装google浏览器和谷歌浏览器驱动

    unbuntu安装google浏览器和谷歌浏览器驱动1、安装google浏览器sudowgethttp://www.linuxidc.com/files/repo/google-chrome.list-P/etc/apt/sources.list.d/wget-q-O-https://dl.google.com/linux/linux_signing_key.pub|sudoapt-keyadd-sudoapt-…

    2022年6月11日
  • RabbitMQ基础介绍与在java中使用-入门「建议收藏」

    RabbitMQ基础介绍与在java中使用-入门「建议收藏」前言:MQ做应用解耦,流量削峰这些是常识,RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库常用的主流的MQ有四个ActiveMQ:Apache下的一个子项目。使用Java完全支持JMS1.1和J2EE1.4规范的JMSProvider实现,少量代码就可以高效地实现高级应用场景。可插拔的传输协议支持,比如:

    2022年10月3日
  • XXE注入漏洞

    XXE注入漏洞什么是XML要想清楚XXE漏洞,首先要了解XMLXML可扩展标记语言(EXtensibleMarkupLanguage)。它是一门用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型。XML很像HTML,但是标签没有被预定义,需要自行定义标签。它的文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。它的设计宗旨是传输数据,而不是显示数据。php版本大于5.4.45的默认不解析外部实体传参实体:有%一般实体:无%xxe漏洞与ssrf漏洞相似虽然场景不同,

    2022年5月24日
  • pytest的assert_java单元测试断言

    pytest的assert_java单元测试断言前言断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试failed

    2022年7月30日
  • mysql中有execute_jdbc连接mysql数据库

    mysql中有execute_jdbc连接mysql数据库最近在补基础知识,刚好补到C#中对数据库操作的一些技术,今天学习了ExecuteNonQuery的东西,看自己项目维护项目的代码和网上资料查询,基本上搞懂了ExecuteNonQuery的用法,小小的做个总结,供以后查阅。ExecuteNonQuery方法主要用来更新数据,当然也可以用来执行目标操作(例如查询数据库的结构或者创建诸如表等的数据库对象)。通常用它来执行insert、update、de…

    2022年9月12日
  • java算法大全_java经典算法_算法面试题大全含答案

    java算法大全_java经典算法_算法面试题大全含答案1、Java中用到的线程调度算法是什么?2、java二叉树算法面试题大全含答案3、java笔试手写算法面试题大全含答案4、java递归算法练习:使用递归算法写个程序计算n!5、JVM的常见垃圾回收算法6、《java算法大全》第一期7、《java算法大全》第三期8、《java算法大全》第二期9、《java算法大全》第五期10、《java算法大全》第四期11、《java经典算法》之…

    2022年7月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号