【Java】-【使用smtp协议发邮件】
目前163和qq邮箱支持SMTP协议,本文以qq邮箱为例,163邮箱和这个思路一样
场景:使用qq邮箱给xx邮箱发一条邮件,那么你一定要获得qq邮箱的授权码,在设置-账户
里找到以下内容,开启服务获得授权码,如果你已经开启了,那么点击生成授权码
获得授权码:
POM.xml中导入以下依赖:
<dependencies><dependency><groupId>org.apache.xbean</groupId><artifactId>xbean-spring</artifactId><version>3.7</version></dependency><dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.5</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>RELEASE</version><scope>compile</scope></dependency></dependencies>
在classpath路径下(我是src/main/resources
)新建mail.properties配置文件,配置内容如下:
email.host=smtp.qq.com
email.port=465
email.from=777777777@qq.com
username=777777777@qq.com
password=授权码
注意:
- email.host为服务器域名,不要加http/https,163邮箱默认为
smtp.163.com
- email.port为端口号,配置465或587,25已经弃用了
- email.from发件人邮箱地址
- username发件人用户名
- password授权码,不是邮箱密码
核心代码:
import javax.mail.*;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;
import java.util.ResourceBundle;public class EmailHelper {private static final ResourceBundle bundle = ResourceBundle.getBundle("mail");private static final String sendFrom = bundle.getString("email.from");private static final String username = bundle.getString("username");private static final String password = bundle.getString("password");private static final String host = bundle.getString("email.host");public static void sendEmail(String someone, String subject, String content){Properties props = new Properties();props.setProperty("mail.host", host);props.setProperty("mail.smtp.auth", "true");Authenticator authenticator = new Authenticator(){@Overridepublic javax.mail.PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(username,password);}};Session session = Session.getDefaultInstance(props, authenticator);session.setDebug(true);Message message = new MimeMessage(session);try {message.setFrom(new InternetAddress(sendFrom));message.setRecipients(MimeMessage.RecipientType.TO,InternetAddress.parse(someone));//message.setRecipients(RecipientType.TO,InternetAddress.parse("测试的接收的邮件多个以逗号隔开"));try {message.setSubject(subject);message.setContent(content,"text/html;charset=UTF-8");Transport.send(message);} catch (Exception e) {e.printStackTrace();}} catch (AddressException e) {e.printStackTrace();} catch (MessagingException e) {e.printStackTrace();}}
}
测试代码:
import org.junit.Test;
public class test {@Testpublic void tsetemail(){String content ="Hello,This is a test email!!!!";//参数分别为接收者邮箱、title、内容bodyEmailHelper.sendEmail("123456@qq.com", "标题", content);}
}
【Java】-【使用smtp协议发邮件】相关推荐
- .NET 简单的smtp协议发邮件
.NET 简单的smtp协议发邮件 好久没写东西了 闲的疼 突然想到没写过发邮件 查了下资料 写了个简单的 MailMessage mymm = new MailMessage(); ...
- 深入理解SMTP协议之邮件客户端
本文将使用Python从零实现一个简易的邮件客户端,通过本文你将对SMTP协议有更深入的了解,同时掌握使用Python实现标准协议的经验. 我们将开发一个简单的邮件客户端,将邮件发送给任意收件人.我们 ...
- 使用telnet登陆smtp服务发邮件
今天无意在一个 论坛 看到别人发帖用TELNET连接发信服务器可以伪造发信人地址,就仔细看了一下如何使用TELNET来发送邮件 我测试了一下163和QQ都成功发送了,但是伪造地址不行,这文章也不是重点 ...
- Java实战-用Java mail实现Exchange发邮件给你喜欢的人
目录 1. 官方指导文章 2. 需要用到com.microsoft.ews-java-api 2.1 maven中添加 2.2 gradle中添加 3. 完整代码:新建一个MailUtil.java类 ...
- Blat-windows cmd命令行脚本SMTP模式发邮件的开源工具参数详细说明
Blat-windows cmd命令行脚本SMTP模式发邮件的开源工具参数详细说明 blat工具可以在命令行下使用发邮件,所以可能被×××用来盗取计算机文件. 所以(1)不建议安装部署到system3 ...
- Drupal安装SMTP模块发邮件
Drupal 默认是没有安装SMTP模块的,所以如果服务器没有设置发邮件的话,会给注册会员带来很大的麻烦.因此,需要用SMTP来发送Email. SMTP下载地址:http://drupal.org/ ...
- java通过SMTP发送QQ邮件的完全步骤
java通过SMTP发送QQ邮件的完全步骤 首先,我们需要打开QQ邮箱的SMTP服务,因为QQ邮箱对于一般的用户都是默认关闭SMTP服务的. 打开QQ邮箱,点击设置 点击帐户 找到SMTP服务的选项, ...
- 基于Java的SMTP协议邮件发送模拟系统
目录 1. 原理分析 2. 前端页面 3. 数据库设计 4. 后端数据处理 5. 参考文献 6. 注意事项 1. 原理分析 SMTP协议 SMTP(Simple Mail Transfer Proto ...
- exchange无法收发邮件_Python使用POP3和SMTP协议收发邮件!
先来了解一下收/发邮件有哪些协议: SMTP协议 SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议.相当于中转站,将邮件发送到客户端. POP3协议 POP3 ...
最新文章
- 学会这两样高级用户,让你成为 Git老手
- 背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定...
- ngrep 比 tcpdump 更方便查看的抓包显示工具
- 详谈调用winpcap驱动写arp多功能工具
- Android•Lottie动画库填坑记
- [C++调试笔记]/* 求解-0.5dt时刻速度 */
- python网站框架下载_Python搭建网站框架
- 培训师 每小时多少钱_每个产品设计师需要了解的品牌知识
- LeetCode 318. 最大单词长度乘积(位运算)
- ORACLE 全文搜索(精度高排前)
- 专心写即时通讯软件争取CSDN认证专家
- Dart基础-变量与类型
- 怎么用计算机弹histheme,来至世界最好的器乐演奏大合集可做音乐素材-Various Artists 2015 (20CD)FLAC/MP...
- HTML页面转PDF 思路
- 网线水晶头接法详细图文教程
- 激荡2020——四大通信设备商年报分析
- 生成对抗网络(GAN)论文原文详解
- MPSOC DP协议介绍
- C#利用HttpWebRequest、HttpWebResponse调用12306接口,实现登录、查票、买票。
- 某计算机系统的内存储器由cache,计算机组成原理习题课1讲解