Java实现QQ邮件发送
首先我们需要两个jar包,点击下面即可下载这两个包:
我们这里采用QQ邮箱发送邮件为例,代码如下:
package ddd; import java.util.Properties; import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart; import com.sun.mail.util.MailSSLSocketFactory; public class SendEmail { public static void main(String[] args) {
try { //设置发件人
String from = "xxx@qq.com"; //设置收件人
String to = "xxxx@qq.com"; //设置邮件发送的服务器,这里为QQ邮件服务器
String host = "smtp.qq.com"; //获取系统属性
Properties properties = System.getProperties(); //SSL加密
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable", "true");
properties.put("mail.smtp.ssl.socketFactory", sf); //设置系统属性
properties.setProperty("mail.smtp.host", host);
properties.put("mail.smtp.auth", "true"); //获取发送邮件会话、获取第三方登录授权码
Session session = Session.getDefaultInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, "第三方登录授权码");
}
}); Message message = new MimeMessage(session); //防止邮件被当然垃圾邮件处理,披上Outlook的马甲
message.addHeader("X-Mailer","Microsoft Outlook Express 6.00.2900.2869"); message.setFrom(new InternetAddress(from)); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); //邮件标题
message.setSubject("This is the subject line!"); BodyPart bodyPart = new MimeBodyPart(); bodyPart.setText("我发送了文件给你"); Multipart multipart = new MimeMultipart(); multipart.addBodyPart(bodyPart); //附件
bodyPart = new MimeBodyPart();
String fileName = "文件路径";
DataSource dataSource = new FileDataSource(fileName);
bodyPart.setDataHandler(new DataHandler(dataSource));
bodyPart.setFileName("文件显示的名称");
multipart.addBodyPart(bodyPart); message.setContent(multipart); Transport.send(message);
System.out.println("mail transports successfully");
} catch (Exception e) {
e.printStackTrace();
}
}
}
QQ邮箱发送邮件记得要在设置里面开启POP3/SMTP服务,然后获取第三方登录的授权码。
上面的代码中启用了SSL加密,网上很多人说QQ发送邮件不加上SSL加密会报错,楼主这里不加也是可以发送的不知道为什么,但是为了数据安全还是加上了。
有些人发送的邮件会被当做垃圾邮件处理,这里我也进行了处理,给邮件头披上Outlook的马甲,当然也可以将邮件内容以HTML格式发送,以防止被当成垃圾邮件。
上述就是一个简单的java发送QQ带附件的邮件的代码。
Java实现QQ邮件发送的更多相关文章
- Java实现QQ邮件发送客户端
目录 一.前言:QQ邮件发送程序 二.封装SMTP操作 三.实现多线程接收 四.QQ邮件客户端界面设计 1.连接按钮 2.发送按钮 五.QQ邮件发送效果演示 六.总结 一.前言:QQ邮件发送程序 在上 ...
- Java网络编程:QQ邮件发送客户端程序设计
目录 一.目标介绍 1.认识SMTP(邮件传输协议) 2.POP3(邮件接收协议) 二.基于Base64编码邮箱及授权码 1.开通QQ邮箱SMTP/POP3服务 2.Java编写BASE64编码程序 ...
- JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架)
JAVA 实现 QQ 邮箱发送验证码功能(不局限于框架) 本来想实现 QQ 登录,有域名一直没用过,还得备案,好麻烦,只能过几天再更新啦. 先把实现的发送邮箱验证码更能更新了. 老规矩,更多内容在注释 ...
- 线程——QQ邮件发送
一.造一个QQ邮件发送的窗体 二.开始编写关于邮件发送的代码,以及当点发送按钮的时候,给发送按钮单独造了一个新的线程.这样如果发送的附件太多的话,如果不给发送按钮造新的线程,便会卡住,但是如果给发送按 ...
- Spring进阶—如何用Java代码实现邮件发送(一)
相关文章: <Spring进阶—如何用Java代码实现邮件发送(二)> 在一些项目里面如进销存系统,对一些库存不足发出预警提示消息,招聘网站注册用户验证email地址等都需要用到邮件发送技 ...
- java实现smtp邮件发送
一.准备工作 首先你需要已一个发送邮箱,一般的邮箱都有SMTP.POP3服务,比如QQ邮箱,登陆QQ邮箱开启SMTP服务,开启是服务器会提示你设置独立密码,这个密码是跟邮箱正常登陆的密码不同的,这个是 ...
- Java实现多线程邮件发送
利用java多线程技术配合线程池实现多任务邮件发送. 1.基本邮件发送MailSender package hk.buttonwood.ops.email; import java.io.File; ...
- java简单的邮件发送
java实现简单的邮件发送案例,学会了这个你就可以利用这个来整你的好友了,不断地给他进行邮箱轰炸(当然个人不建议瞎搞),最重要的是明白其中的原理最好了.话不多说,直接看代码案例了.首先需要导入的jar ...
- python定时利用QQ邮件发送天气预报
大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1.首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.c ...
随机推荐
- Google在情报搜集中的基础技巧
Google在情报搜集中的基础技巧 作者:王宇阳 时间:2019-06-06 作者笔记 Google Hacking 是指使用特定的高级的google搜索语法,收集渗透测试目标的信息,查找目标的配 ...
- MongoDB安装调试
1:安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包 解压后会出现以下文件 在安装的盘C:下建立mongodb文件夹,拷贝bin文件夹到该 ...
- Linux系统配置永久明细路由
版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明. 本文链接地址:https://www.cnblogs.com/wannengachao/p/11947400.html 1.创 ...
- C学习笔记(1)---数据类型,变量,储存类
1.常用基本数据类型占用空间(64位机器为例): char : 1个字节 -- int :4个字节 -- float:4个字节 -- double:8个字节 2.书写类型: A.整数: a. 默认为1 ...
- python3.5.3rc1学习八:文件打包
from cx_Freeze import setup, Executable setup(name='test to exe', version = '0.1', description='test ...
- pycharm 远程连接
1.连接远程项目 2.连接远程服务器
- 读取本地文件转化成MultipartFile
介绍 现在有个上传文件功能,需要将文件上传到oss上,但是文件有点多,于是使用接口进行上传.但是需要上传文件转换为MultipartFile类型文件进行上传. 主要代码 添加pom文件 <dep ...
- CME Futures & Options Order Book
http://algo-logic.com/futures-options-orderbook Algo-Logic Systems’ Futures & Options (F&O) ...
- MySQL SQL DML (数据操作语言)
包括 SELECT, UPDATE, DELETE, INSERT SELECT 从数据库表中获取数据 用法 SELECT name FROM students; SELECT name,age FR ...
- wcf callback在主线程被调用
记得当时往wcf迁移了部分service以后,tester发现有时候系统会没有任何反应,cpu占用倒是没有问题,可就是做不了事情. 感觉是哪里死锁了,但也不是每次都能再现,后来发现如果把callbac ...