邮件开发环境搭建

邮件服务器

  • 易邮邮件服务器

    • 配置如下

邮件客户端

  • Foxmail

    • 配置如下

使用Javamail发送邮件

  1. 下载
  • javamail-samples.zip
  • javax.mail.jar

官网地址http://www.oracle.com/technetwork/java/javamail/index.html

  1. 使用javamail

发送到本地的邮件中

package org.xueyao.email;

import java.util.Date;
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 MailUtils {
/**
* 发送邮件
* @param to 接收邮件的地址
* @param subject 邮件主题
* @param msgText 邮件内容
*/
public static void send(String to, String subject, String msgText) {
//发邮件的地址
String from = "admin@flowstone.com";
//邮件发送服务器地址
String host = "localhost";
//是否开启debug模式
boolean debug = true; // 设置发送邮件的配置信息
Properties props = new Properties();
props.put("mail.smtp.host", host);
if (debug) {
props.put("mail.debug", debug);
}
//邮件会话
Session session = Session.getInstance(props, null);
session.setDebug(debug); try {
//创建邮件
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = { new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO, address);
//设置主题
msg.setSubject(subject);
//设置发送时间
msg.setSentDate(new Date());
// If the desired charset is known, you can use
// setText(text, charset)
//设置邮件的内容
msg.setText(msgText);
//发送邮件
Transport.send(msg);
} catch (Exception mex) {
mex.printStackTrace();
}
}
public static void main(String[] args) {
String to = "test02@flowstone.com";
String subject = "如何学习?";
String msgText = "解决学习困扰,就是天天晚上熬夜学习";
MailUtils.send(to, subject, msgText); } }
  1. 效果图

通过QQ邮箱发送

package org.xueyao.email;

import java.util.Date;
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 MailQQUtils {
/**
* 发送邮件
* @param to 接收邮件的地址
* @param subject 邮件主题
* @param msgText 邮件内容
*/
public static void send(String to, String subject, String msgText) {
//发邮件的地址
String from = "931330220@qq.com";
String password = "授权码";
//邮件发送服务器地址
String host = "smtp.qq.com";
//是否开启debug模式
boolean debug = true; // 设置发送邮件的配置信息
Properties props = new Properties();
props.put("mail.smtp.host", host); if (debug) {
props.put("mail.debug", debug);
}
//添加auth认证
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587"); //邮件会话
Session session = Session.getInstance(props, null);
session.setDebug(debug); try {
//创建邮件
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = { new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO, address);
//设置主题
msg.setSubject(subject);
//设置发送时间
msg.setSentDate(new Date());
//设置邮件的内容
msg.setText(msgText);
//发送邮件
Transport.send(msg,from,password);
} catch (Exception mex) {
mex.printStackTrace();
}
}
public static void main(String[] args) {
String to = "收件邮箱";
String subject = "如何学习?";
String msgText = "解决学习困扰,就是天天晚上熬夜学习";
MailQQUtils.send(to, subject, msgText); } }

效果图

Javamail简单使用案例的更多相关文章

  1. [Java] JavaMail 简单案例

    网易提供了免费的 SMTP / POP3服务,可用于编程测试,详情见 什么是POP3.SMTP和IMAP? 只需要拥有一个网易邮箱账号,并开启该账号的 SMTP / POP3 功能,便可以通过程序发送 ...

  2. 简单登录案例(SharedPreferences存储账户信息)&联网请求图片并下载到SD卡(文件外部存储)

    新人刚学习Android两周,写一个随笔算是对两周学习成果的巩固,不足之处欢迎各位建议和完善. 这次写的是一个简单登录案例,大概功能如下: 注册的账户信息用SharedPreferences存储: 登 ...

  3. MyBatis学习总结(一)简单入门案例

    MyBatis学习总结(一)简单入门案例 主要内容:本文主要通过对数据库中的use表进行增删改查总结mybatis的环境搭建和基本入门使用 一.需要的jar包: 1.核心包 2.依赖包 3.jdbc数 ...

  4. 一个简单的案例带你入门Dubbo分布式框架

    相信有很多小伙伴都知道,dubbo是一个分布式.高性能.透明化的RPC服务框架,提供服务自动注册.自动发现等高效服务治理方案,dubbo的中文文档也是非常全的,中文文档可以参考这里dubbo.io.由 ...

  5. solr简单搜索案例

    solr简单搜索案例 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字搜索商品信息,根据商品分类.价格过滤搜索结果,也可以根据价格进行排序,实现分页. 架构分为: 1. solr服务器 2. ...

  6. springcloud+eureka简单入门案例

    springcloud+eureka简单入门案例 一.服务提供者 直接提供服务,入门案例没有特别要设置的地方,注意下端口,由于要启动多个服务,可能会冲突 配置文件(src/main/resources ...

  7. Python 简单爬虫案例

    Python 简单爬虫案例 import requests url = "https://www.sogou.com/web" # 封装参数 wd = input('enter a ...

  8. arduino中SCoop库的简单应用案例

    转载:https://www.csdn.net/gather_27/MtTaggzsMDExMS1ibG9n.html arduino中SCoop库的简单应用案例首先这篇文章来在视频https://v ...

  9. ReentrantReadWriteLock读写锁简单原理案例证明

    ReentrantReadWriteLock存在原因? 我们知道List的实现类ArrayList,LinkedList都是非线程安全的,Vector类通过用synchronized修饰方法保证了Li ...

随机推荐

  1. Git介绍及基本操作

    Git基本概念 在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository),每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Git来实现版本管理,Git都能跟踪并记录 ...

  2. 使用redis计数来控制单位时间内对某接口的访问量,防止刷验证码接口之类的

    使用自定义注解的方式,在需要被限制访问频率的方法上加注解即可控制. 看实现方式,基于springboot,aop,redis. 新建Springboot工程,引入redis,aop. 创建注解 pac ...

  3. Javascript+CSS实现影像卷帘效果

    用过Arcgis的筒子们对于Arcmap里面的一个卷帘效果肯定记忆很深刻,想把它搬到自己的WebGIS系统中去,抱着同样的想法,我也对这种比较炫的卷帘效果做了一下研究,吼吼,出来了,给大家汇报一下成果 ...

  4. 有效处理Java异常三原则

    Java中异常提供了一种识别及响应错误情况的一致性机制,有效地异常处理能使程序更加健壮.易于调试.异常之所以是一种强大的调试手段,在于其回答了以下三个问题: 什么出了错? 在哪出的错? 为什么出错? ...

  5. 我们为什么选择JAVA

    我们为什么选择Java 大多数人选择Java可能只是因为听说Java前景好.Java比较好找工作.Java语言在TIOBE排行榜上一直位于前三等等之类的原因,但是Java具体好在哪里,心里却是没有什么 ...

  6. touch-action属性

    CSS属性 touch-action 用于指定某个给定的区域是否允许用户操作,以及如何响应用户操作(比如浏览器自带的划动.缩放等). /* Keyword values */touch-action: ...

  7. MpVue开发之框架的搭建

    npm install --global  vue-cli vue脚手架 vue init mpvue/mpvue-quickstart  my-project 创建一个基于mpvue-quickst ...

  8. HDU2032 杨辉三角

    解题思路:不要小看这题水题,如果数据类型没有用long long, 当n开为35时,会出现TLE,而且会报非法内存访问,现在还 不理解为什么,若有高手,请不吝赐教. 上代码: #include< ...

  9. [转载] FFMPEG结构体分析:AVFrame

    注:写了一系列的结构体的分析的文章,在这里列一个列表: FFMPEG结构体分析:AVFrameFFMPEG结构体分析:AVFormatContextFFMPEG结构体分析:AVCodecContext ...

  10. WPF导学目录

    很早就知道WPF这个东西,做项目中没用到,也就没去整理学习.作为winForm的升级版,未来windows桌面应用程序的趋势,有些公司招聘需求中也会提到熟悉WPF,于是就整理学习了一下WPF. 主要参 ...