一、开通QQ邮箱服务

因为这里只是使用了邮箱的发邮件功能,所以我只要开通他的smtp功能就可以了

开启流程如下:

(1)进入到QQ邮箱页面,并登录进去

(2)点击左上角的“设置”,将会出现如下页面



(3)选择“账户”,并滚动到以下页面所显示的页面。


(4)这里我们选择开启smtp服务,也就是只开通发邮件服务



(5)点击之后将会弹出一个页面,提示需要发送短信信息生成授权码


(6)按照要求发送短信之后,点击弹框中的“我已发送”,服务器将会生成一个授权码,我们要发邮件的时候,将会使用到该授权码。最后记得保存该设置,否则不生效。

二、用java编写发邮件程序

(1)编写该程序需要用到的jar包

javax.mail-1.5.5.jar

spring-beans-4.0.7.RELEASE.jar

spring-context-support-4.0.7.RELEASE.jar

spring-core-4.0.7.RELEASE.jar

(2)编写程序,示例代码如下所示:

package mail;

import java.io.BufferedReader;

import java.io.FileReader;

import java.util.Properties;

import org.springframework.mail.SimpleMailMessage;

import org.springframework.mail.javamail.JavaMailSenderImpl;

/**

* 使用QQ发送邮件工具类

@author canye

* 2016年8月25日星期四

*/

public class SendEmailUtil {

private final static  String SERVICE_HOST = "smtp.qq.com";//QQ服务器

private final static  int    PORT = 465; //smtp的端口号

private final static  String PROTOCOL = "smtp"; //协议名称。smtp表示简单邮件传输协议

private final static  String ACCOUNT = "2421137562@qq.com"; //发送邮件的QQ账号

private final static  String AUTH_CODE = "hvuwbnvicjvgdjbc"; //QQ授权码(需要到https://mail.qq.com/申请)

private static final JavaMailSenderImpl senderImpl = new JavaMailSenderImpl();

/*

*发送QQ邮件的初始化配置

*/

static{

senderImpl.setHost(SERVICE_HOST); //设置 使用QQ邮箱发送邮件的主机名

senderImpl.setPort(PORT); //设置端口号

senderImpl.setProtocol(PROTOCOL); //协议名称

senderImpl.setUsername(ACCOUNT); // 设置自己的邮箱帐号名称

senderImpl.setPassword(AUTH_CODE); // 设置对应账号申请到的授权码

Properties prop = new Properties();

prop.put(" mail.smtp.auth ", "true"); // 将这个参数设为true,让服务器进行认证,认证用户名和密码是否正确

prop.put("mail.smtp.starttls.enable", "true");

prop.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); //使用ssl协议来保证连接安全

prop.put(" mail.smtp.timeout ", "25000"); //传输超时时间

senderImpl.setJavaMailProperties(prop);

}

/**

* 发送简单邮件

@param accounts  被发邮件的用户数组

@param info      邮件信息

@param title     邮件主题

*/

public static void sendSimpleMail(String[] accounts,String info,String title){

//创建简单邮件对象

SimpleMailMessage mailMessage = new SimpleMailMessage();

mailMessage.setTo(accounts);  //设置邮件接收者账号数组

mailMessage.setFrom(ACCOUNT); //设置邮件的发送者

mailMessage.setSubject(title);//设置邮件的主题

mailMessage.setText(info);    //设置邮件的内容

//发送邮件

senderImpl.send(mailMessage);

}

/**

* 函数入口(主要用于shell调用)

@param args  有三个参数,分别是文件名(主要是邮箱账户),邮件主题  和邮件内容

*/

public static void main(String args[])

{

if(args.length != 3){//判断输入参数是否正确

System.out.println("请输入正确的参数,分别是文件名、邮件主题和邮件内容");

return;

}

try {

//建立输入缓冲流,读取邮箱账号文件信息

BufferedReader reader = new BufferedReader(new FileReader(args[0]));

//创建一个存储账号信息

StringBuilder builder = new StringBuilder();

//遍历账号信息

String line = "" ;

int index = 0 ;//索引

while ((line = reader.readLine()) != null) {

//取出两边空格

line = line.trim();

//判断改行是否为空

if(line.equals(""))

continue;

//把读取到的邮箱帐号添加到builder中,多个值用逗号分隔

if(index == 0 ){

builder.append(line);

}else {

builder.append(","+line);

}

index ++;

}

//把字符串切割成数组array

String[] accounts = builder.toString().split(",");

//发送邮件,args[1] 邮件主题,args[2] 邮件内容

sendSimpleMail(accounts, args[1], args[2]);

catch (Exception e) {

e.printStackTrace();

}

System.out.println(" 邮件发送成功.. ");

}

}

注意:如上所示,主函数需要三个参数,第一个是存储接收邮件的账号文件,第二个是邮件的主题,第三个是邮件的内容

三、把项目打包成jar包,以便shell脚本调用

(1)选中项目,点击右键>>>Export

(2)选择Runable JAR file然后点击next ,这是因为这个项目依赖了第三方的包,如果没有第三方依赖包的话,可以选择JAR file

(3)从launch configuration中选择打包的jar中的主类,即main函数所在的类,不过这里要注意,如果这个类没有运行过的话,在下拉列表中将不会存在,所以在打包之前,要先运行这个类。第二个圈起来的是打包的jar包的输出路径;接下来是选择其他引用类的打包方式,默认选择是第二个,意思是把项目中用到的jar包也打包到即将成的jar中。

四、测试QQ邮件是否可用(必须有java环境)

(1)把生成的jar包拷贝到linux系统的~/jar/目录下

(2)编写一个存储接收邮件的qq邮箱账号文件~/jar/qq_account.txt,测试内容如下

251341332@qq.com

408337319@qq.com

(3)执行以下命令来测试邮件是否可以成功发送,该命令带三个输入参数,第一个是账号文件名,第二个是邮件主题,第三个是邮件内容

java  -jar SendMail.jar  ~/jar/qq_account.txt  “今天没有作业"  "居然没有作业""














JAVA 使用QQ发送邮件相关推荐

  1. java模拟登录qq邮箱_使用Java实现qq邮箱发送邮件

    本文实例为大家分享了Java操作qq邮箱发送邮件的具体代码,供大家参考,具体内容如下 今天尝试了使用QQ邮箱的POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务来进行发送 ...

  2. Java实现QQ邮箱发送给网易邮箱,发送邮件+附件

    实现功能: Java实现 QQ邮箱 给网易邮箱发送邮件 获取邮件信息并下载邮件的附件 前置功能 案例以QQ邮箱为例说明: 首先登录QQ邮箱将SMTP服务开启,会得到一个授权码. 创建一个Springb ...

  3. java使用smtp发送邮件问题

    原先使用smtp通过邮箱发送邮件不需要认证,但是后来发现如果使用的是QQ邮箱会报认证失败的异常.原来QQ邮箱是需要ssl认证的,需要先到QQ邮箱里的 设置--账户--POP3/IMAP/SMTP/Ex ...

  4. Java发送QQ邮件问题Could not connect to SMTP host: smtp.qq.com, port: 465(内附完整代码)

    邮件发送失败,本地测试可以,部署到服务器就不行. 之前就碰到这个问题,解决办法就是把port端口改成587,然后注释这一段 MailSSLSocketFactory sf = new MailSSLS ...

  5. java案例----用户注册--发送邮件并激活/发送邮件验证码

    java案例----用户注册-发送邮件并激活/发送邮件验证码 一.前期准备 1.准备两个邮箱账号(一个发邮件,一个收邮件) 1.1)登录需要发送邮件的QQ邮箱,找到设置项 1.2)然后在账户栏下,找到 ...

  6. java发送QQ邮箱验证码实现登录注册、邮箱验证码防刷校验

    文章目录 一:前台功能实现 1.1 页面编写 1.2 发送验证码--sendEmailCode 1.2.1 远程调用发送接口 1.2.1 接口防刷校验--60s内只能发送一次 二:获取QQ邮箱授权码 ...

  7. JAVA实现QQ邮箱推送邮件

    JAVA实现QQ邮箱推送邮件 文章目录 JAVA实现QQ邮箱推送邮件 准备 一.在项目中引入JavaMail包 二.开始实现 1.我们在Service类里面编写一个方法,这个方法接收两个参数:1收件人 ...

  8. Java使用QQ邮箱或网易163邮箱发送自定义CSS样式邮件

    Java使用QQ邮箱或网易163邮箱发送自定义CSS样式邮件 前言 一.战前准备 1.导入依赖 2.配置文件 3.邮箱工具类 二.战争开始 1.QQ邮箱发送 2.网易邮箱发送 战后反思 前言 我们可能 ...

  9. Java实现QQ邮件发送客户端程序设计

    目录 一.前言:QQ邮件发送程序 二.封装SMTP操作 三.实现多线程接收 四.QQ邮件客户端界面设计 1.连接按钮 2.发送按钮 五.QQ邮件发送效果演示 六.总结 一.前言:QQ邮件发送程序 !! ...

最新文章

  1. LeetCode:14. Longest Common Prefix
  2. SQLite中的表达式
  3. 【bzoj2500】幸福的道路 树形dp+倍增RMQ+二分
  4. php7慢,php-finfo在7.3和7.2上明显慢
  5. VMware NSX 6.2初学者指南 - 从实验室的零部署到完全部署
  6. C# 连接SQL 连接字符串
  7. pyqt5 登录窗口调用主窗口
  8. 存储过程从入门到精通(转载)
  9. 如龙0pc端与计算机王玩游戏卡住,如龙0游戏停止工作怎么办_游戏未响应闪退解决方法_3DM单机...
  10. 软件开发常用的四种模式
  11. 概率论基础知识(一)概率论基本概念
  12. 模板,宏,atuo关键字的简述
  13. 抖音SEO,抖音排名优化,抖音排名规则
  14. GMap.NET控件使用
  15. ARM_kafka搭建
  16. 【Python课程作业】食物数据的爬取及分析(详细介绍及分析)
  17. 基于GoogLeNet实现鸟类识别任务
  18. I2C接口简介和时序
  19. matlab变量相加,如何在空间计量matlab程序中加入更多的变量?
  20. 【安装配置java环境】

热门文章

  1. 如何快速删除word中多个换行符
  2. windows7找不到网络路径
  3. 30.释放了保留的带宽的设置:
  4. Maven home directory不能修改
  5. 厦门市租房情况分析App02项目
  6. ***股票自动交易软件AutoStock使用说明***
  7. 堪称精华的Desktop TD介绍文章
  8. 奇偶位交换 牛客网 程序员面试金典 C++ Python
  9. QCustomPlot (一) 画一个简单正弦曲线
  10. vol.131 日本异闻录 · 我曾经去了一个假的日本