使用Java应用程序发送 E-mail 十分简单,但是首先你应该在你的机器上安装 JavaMail API 和Java Activation Framework (JAF) 。

您可以从 Java 网站下载最新版本的 JavaMail,打开网页右侧有个 Downloads 链接,点击它下载。

下载并解压缩这些文件,在新创建的顶层目录中,您会发现这两个应用程序的一些 jar 文件。您需要把 mail.jar 和 activation.jar 文件添加到您的 CLASSPATH 中。

如果是maven项目,只需依赖mail这个jar,它会传递依赖activation

<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.5</version>
</dependency> 本实例以 QQ 邮件服务器为例,你需要在登录QQ邮箱后台在"设置"=》账号中开启POP3/SMTP服务(必须开启POP3/SMTP服务
点我查看开启POP3/SMTP服务教程

项目结构:

配置文件 mail.properties(也是可以不用配置文件,直接传入参数)

发送邮件的帮助类(EmailHelper):

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.io.UnsupportedEncodingException;
import java.util.Properties;
import java.util.ResourceBundle; /**
* @author hh
* @Date 2018/11/7
*/
public class EmailHelper { /**
* 获取配置文件
*/
private static final ResourceBundle bundle = ResourceBundle.getBundle("mail");
/**
* 发件人邮件用户名(发件人)
*/
private static final String sendFrom = bundle.getString("email.from");
/**
* 发件人邮件授权码
*/
private static final String password = bundle.getString("password");
/**
* 指定发送邮件的主机为 smtp.qq.com (QQ 邮件服务器)
*/
private static final String host = bundle.getString("email.host");
/**
* 发件人昵称
*/
private static final String nickName = bundle.getString("email.nickName"); /**
*
* @param addressList 邮箱地址(多个以逗号隔开)
* @param emailTitle 邮件标题
* @param content 邮件内容
*/
public static void sendEmail(String addressList, String emailTitle, String content)throws MessagingException,UnsupportedEncodingException {
// 步骤一 创建与邮件服务器连接会话
// 配置与服务器连接参数
Properties props = new Properties();
// 设置properties 属性
//服务器的本地主机(我用的是qq邮箱)smtp.qq.com
props.setProperty("mail.host", host);
// 连接认证
props.setProperty("mail.smtp.auth", "true");
//发邮件前进行身份校验
Authenticator authenticator = new Authenticator(){
@Override
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(sendFrom,password);
}
};
// 与邮件服务器连接会话
Session session = Session.getDefaultInstance(props,authenticator); session.setDebug(true);
// 步骤二 编写Message(邮件)
Message message = new MimeMessage(session);
//发送人昵称
String personal = new String(nickName.getBytes("ISO-8859-1"),"utf-8");
// from字段(发送人邮箱地址)
message.setFrom(new InternetAddress(sendFrom,personal,"utf-8"));
// to 字段(收件人邮箱地址)InternetAddress.parse():解析字符串成InternetAddress addressList:可以逗号隔开,同时给多个人发送
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(addressList));
// subject字段(邮件标题)
message.setSubject(emailTitle);
// 邮件正文内容 (可以发送HTML 内容)
message.setContent(content,"text/html;charset=UTF-8");
//步骤三 使用Transport发送邮件
Transport.send(message);
}
}

程序入口(AppMain):

import javax.mail.MessagingException;
import java.io.UnsupportedEncodingException; /**
* @author hh
* @Date 2018/11/7
*/
public class AppMain {
public static void main(String[] args) {
String content = "<h1>This is actual message</h1>";
try {
EmailHelper.sendEmail("692262908@qq.com", "title", content);
} catch (MessagingException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} }
}

运行结果(收件人邮箱):

一篇讲JavaMail的博客,讲的挺不错的:Link

基于JavaMail的Java邮件发送:简单邮件发送的更多相关文章

  1. 基于JavaMail的Java邮件发送:复杂邮件发送

    参考:http://blog.csdn.net/xietansheng/article/details/51722660package com.bfd.ftp.utils;import java.ut ...

  2. JavaMail发送简单邮件

    非常简单的发送邮件实现,网上有很多啦,但还是自己写写记录下吧. package cn.jmail.test; import java.util.Properties; import javax.mai ...

  3. SpringBoot 发送简单邮件

    使用SpringBoot 发送简单邮件 1. 在pom.xml中导入依赖 <!--邮件依赖--> <dependency> <groupId>org.springf ...

  4. 【转】基于JavaMail的Java邮件发送

    http://blog.csdn.net/xietansheng/article/details/51673073 http://blog.csdn.net/xietansheng/article/d ...

  5. 使用javaMail发送简单邮件

    参考网页:http://blog.csdn.net/xietansheng/article/details/51673073package com.bfd.ftp.utils; import java ...

  6. (一)JavaMail发送简单邮件

    1,导入依赖 <dependency> <groupId>com.sun.mail</groupId> <artifactId>jakarta.mail ...

  7. 关于使用 Spring 发送简单邮件

    这是通过Spring 框架内置的功能完成简单邮件发送的测试用例. 导入相关的 jar 包. Spring 邮件抽象层的主要包为 org.springframework.mail. 它包括了发送电子邮件 ...

  8. Python通过yagmail和smtplib模块发送简单邮件

    SMTP是发送邮件的协议,Python内置对SMTP的支持,可以发送纯文本邮件.HTML邮件以及带附件的邮件.python发邮件需要掌握两个模块的用法,smtplib和email,这俩模块是pytho ...

  9. Java Mail发送简单邮件,完整代码

    依赖javax.mail.jar,地址:https://java.net/projects/javamail/pages/Home 完整示例代码如下: package com.jadic.utils; ...

随机推荐

  1. [Swift]LeetCode736. Lisp 语法解析 | Parse Lisp Expression

    You are given a string expressionrepresenting a Lisp-like expression to return the integer value of. ...

  2. Mac下安装配置Python2和Python3并相互切换使用

    mac os 以前没有使用过,这次使用了一把,的确还是比较不顺手的,估计从今以后,就要把平台逐渐切换到mac了.今后好的文章,专门会开一个macos专栏,专门记录macos的使用过程中的心得,体会,以 ...

  3. Hystrix介绍

    Hystrix是什么 在分布式环境中,许多服务依赖项中的一些必然会失败.Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互.Hystrix通过隔离服务之间的访问点. ...

  4. RabbitMQ学习笔记(三) 发布与订阅

    发布与订阅 在我们使用手机发送消息的时候,即可以选择给单个手机号码发送消息,也可以选择多个手机号码,群发消息. 前面学习工作队列的时候,我们使用的场景是一个消息只能被一个消费者程序实例接收并处理,但是 ...

  5. redis 系列7 数据结构之跳跃表

    一.概述 跳跃表(skiplist)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的.在大部分情况下,跳跃表的效率可以和平衡树(关系型数据库的索引就是平衡树 ...

  6. C++版 - UVa1585 Score - 题解

    C++版 - UVa1585 Score - 题解 <算法竞赛入门经典(第二版)> 习题3-1 得分(ACM/ICPC Seoul 2005,UVa1585) 问题描述: 给出一个由O和X ...

  7. Linux学习笔记(一):常用命令(1)

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  8. VSCode入门----设置成中文

    将VScode设置成中文. 1.如下图,安装中文插件,点击左边后,输入chinese搜索,然后选择中文件简体进行安装. 2.按住Ctrl+Shift+P,然后输入 configure ,如下图,选择“ ...

  9. OAuth2.0 原理简介

    写在前面: 在正式介绍OAuth2.0之前我们先来看一个场景:小李是一个文艺小青年, 经常喜欢出去旅游并且把自己旅行中的美景照片分享到各大社交网站上,比如朋友圈,新浪微博.小李马上要向女朋友求婚了,他 ...

  10. linux磁盘管理系列二:软RAID的实现

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...