目前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=授权码

注意:

  1. email.host为服务器域名,不要加http/https,163邮箱默认为smtp.163.com
  2. email.port为端口号,配置465或587,25已经弃用了
  3. email.from发件人邮箱地址
  4. username发件人用户名
  5. 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协议发邮件】相关推荐

  1. .NET 简单的smtp协议发邮件

    .NET 简单的smtp协议发邮件 好久没写东西了 闲的疼 突然想到没写过发邮件 查了下资料 写了个简单的 MailMessage mymm = new MailMessage();          ...

  2. 深入理解SMTP协议之邮件客户端

    本文将使用Python从零实现一个简易的邮件客户端,通过本文你将对SMTP协议有更深入的了解,同时掌握使用Python实现标准协议的经验. 我们将开发一个简单的邮件客户端,将邮件发送给任意收件人.我们 ...

  3. 使用telnet登陆smtp服务发邮件

    今天无意在一个 论坛 看到别人发帖用TELNET连接发信服务器可以伪造发信人地址,就仔细看了一下如何使用TELNET来发送邮件 我测试了一下163和QQ都成功发送了,但是伪造地址不行,这文章也不是重点 ...

  4. Java实战-用Java mail实现Exchange发邮件给你喜欢的人

    目录 1. 官方指导文章 2. 需要用到com.microsoft.ews-java-api 2.1 maven中添加 2.2 gradle中添加 3. 完整代码:新建一个MailUtil.java类 ...

  5. Blat-windows cmd命令行脚本SMTP模式发邮件的开源工具参数详细说明

    Blat-windows cmd命令行脚本SMTP模式发邮件的开源工具参数详细说明 blat工具可以在命令行下使用发邮件,所以可能被×××用来盗取计算机文件. 所以(1)不建议安装部署到system3 ...

  6. Drupal安装SMTP模块发邮件

    Drupal 默认是没有安装SMTP模块的,所以如果服务器没有设置发邮件的话,会给注册会员带来很大的麻烦.因此,需要用SMTP来发送Email. SMTP下载地址:http://drupal.org/ ...

  7. java通过SMTP发送QQ邮件的完全步骤

    java通过SMTP发送QQ邮件的完全步骤 首先,我们需要打开QQ邮箱的SMTP服务,因为QQ邮箱对于一般的用户都是默认关闭SMTP服务的. 打开QQ邮箱,点击设置 点击帐户 找到SMTP服务的选项, ...

  8. 基于Java的SMTP协议邮件发送模拟系统

    目录 1. 原理分析 2. 前端页面 3. 数据库设计 4. 后端数据处理 5. 参考文献 6. 注意事项 1. 原理分析 SMTP协议 SMTP(Simple Mail Transfer Proto ...

  9. exchange无法收发邮件_Python使用POP3和SMTP协议收发邮件!

    先来了解一下收/发邮件有哪些协议: SMTP协议 SMTP(Simple Mail Transfer Protocol),即简单邮件传输协议.相当于中转站,将邮件发送到客户端. POP3协议 POP3 ...

最新文章

  1. 学会这两样高级用户,让你成为 Git老手
  2. 背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定...
  3. ngrep 比 tcpdump 更方便查看的抓包显示工具
  4. 详谈调用winpcap驱动写arp多功能工具
  5. Android•Lottie动画库填坑记
  6. [C++调试笔记]/* 求解-0.5dt时刻速度 */
  7. python网站框架下载_Python搭建网站框架
  8. 培训师 每小时多少钱_每个产品设计师需要了解的品牌知识
  9. LeetCode 318. 最大单词长度乘积(位运算)
  10. ORACLE 全文搜索(精度高排前)
  11. 专心写即时通讯软件争取CSDN认证专家
  12. Dart基础-变量与类型
  13. 怎么用计算机弹histheme,来至世界最好的器乐演奏大合集可做音乐素材-Various Artists 2015  (20CD)FLAC/MP...
  14. HTML页面转PDF 思路
  15. 网线水晶头接法详细图文教程
  16. 激荡2020——四大通信设备商年报分析
  17. 生成对抗网络(GAN)论文原文详解
  18. MPSOC DP协议介绍
  19. C#利用HttpWebRequest、HttpWebResponse调用12306接口,实现登录、查票、买票。
  20. 某计算机系统的内存储器由cache,计算机组成原理习题课1讲解

热门文章

  1. bim专用计算机,怎样选择BIM软件电脑-BIM电脑配置详解
  2. linux 字符串lf个数,CRLF、CR、LF详解
  3. java 对象锁_个人对java中对象锁与类锁的一些理解与实例
  4. Django数据库建模
  5. java 界面编程_JAVA图形界面编程
  6. 使用C#模拟键盘输入
  7. 口腔取模过程及注意事项_防止取模变形的技巧
  8. 可以云端储存的便签软件 2022能云端同步的便签app
  9. python后端开发_python适合后端开发么
  10. spad dtof lidar车载IMX459更新系列四深度传感器进化为激光雷达