package com.rjj.d;

import java.security.GeneralSecurityException;
import java.util.Date;
import java.util.Properties; import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage; import com.sun.mail.util.MailSSLSocketFactory; public class MailTest2 {
//授权码认证
static Authenticator auth = new Authenticator() { @Override
protected PasswordAuthentication getPasswordAuthentication() {
//发送者邮箱和授权码
return new PasswordAuthentication("215060580@qq.com", "xxxxxxxxx");//这里是授权码
} }; public static void main(String[] args) { Properties props = new Properties();
props.put("mail.smtp.host", "smtp.qq.com");//这里是SMTP发送服务器的名字 qq的smtp.qq.com
props.put("mail.smtp.auth", "true");//smtp是否需要认证
props.put("mail.from", "215060580@qq.com");//发送者的邮箱

     /*
      qq需要些ssl加密否会报错 
       javax.mail.AuthenticationFailedException: 530 Error: A secure connection is requiered(such as ssl).
       More information at http://service.mail.qq.com/cgi-bin/help?id=28
     */
    //qq邮箱需要设置ssl加密,
try {
            MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.socketFactory", sf);
} catch (GeneralSecurityException e) {
e.printStackTrace();
}
//实例化session
Session session = Session.getInstance(props, auth);
try {
// 创建默认的 MimeMessage 对象
MimeMessage msg = new MimeMessage(session);
//设置头部字段
msg.setFrom(new InternetAddress("215060580@qq.com"));//如果写必须写的和发件人邮箱一样
// msg.setFrom();//可以不写,默认
msg.setRecipients(Message.RecipientType.TO, "253481340@qq.com");//收件人
msg.setSubject("JavaMail hello world example");//收到邮件的标题
msg.setSentDate(new Date());//时间
msg.setText("Hello, world!\n");//邮件的身体内容,就是发送的邮件内容
Transport.send(msg);
} catch (MessagingException ex) {
System.out.println("send failed, exception: " + ex);
} }
}

以上是代码,复制直接可以用,但是需要在qq里边设置开启一些东西

1.

qq又想找找到设置,打开这个界面,点击用户,然后往下翻找到

开启标记的两个服务,并且需要拿到授权码,  点击生成授权码,

我的设置了手机令牌,会出现这个,填完动态码,会出现

这个,把授权码赋值到代码中替换xxxxxxxx就行。完了直接运行代码就会个指定的邮箱发送邮件

这个就是最简单的发送邮件,学习中....

最后就是jar

发送email的更多相关文章

  1. java发送email

    package com.assess.util; import java.io.File; import java.util.ArrayList; import java.util.List; imp ...

  2. Spring 发送 Email

    本文转自:http://zl198751.iteye.com/blog/757617 看到了本文,收获颇丰,感谢之至! 首先介绍下Email的发送流程: 需要选中smtp邮件服务器,Yahoo不提供免 ...

  3. 使用PHP发送email进行账号激活或者密码修改操作

    使用PHPMailer编写发送邮件 PHPMailer需PHP的socket扩展支持,而PHPMailer链接qq域名邮箱时需要ssl加密方式(qq邮箱最近做了限制,新开域名邮箱不再允许通过smtp协 ...

  4. 使用python原生的方法实现发送email

    使用python原生的方法实现发送email import smtplib from email.mime.text import MIMEText from email.mime.multipart ...

  5. C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)

    下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用: using System.Net.Mail; using System.Text; using System.Net; ...

  6. 【WinForm】C# 发送Email

    发送Email  的条件 1.SmtpClient SMTP 协议    即 Host 处理事务的主机或IP地址     //smtp.163.com      UseDefaultCredentia ...

  7. [转]C#发送Email邮件 (实例:QQ邮箱和Gmail邮箱)

    下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用:using System.Net.Mail;using System.Text;using System.Net; 程序 ...

  8. asp.net发送E-mail

    发送电子邮件也是项目开发当中经常用到的功能,这里我整理了一个发送电子邮件(带附件,支持多用户发送,主送.抄送)的类库,供大家参考. 先上两个实体类,用于封装成Mail对象. /// <summa ...

  9. 使用spring 并加载模板发送Email 发邮件 java 模板

    以下例子是使用spring发送email,然后加载到固定的模板,挺好的,大家可以试试 需要使用到spring-context 包 和 com.springsource.org.apache.veloc ...

  10. [Python] 发送email的几种方式

    python发送email还是比較简单的,能够通过登录邮件服务来发送,linux下也能够使用调用sendmail命令来发送,还能够使用本地或者是远程的smtp服务来发送邮件,无论是单个,群发,还是抄送 ...

随机推荐

  1. Day5_递归_二分法

    递归调用: 在调用一个函数的过程中,直接或间接的调用函数本身. def func(): print('from func') 间接调用: def foo(): print('form foo') ba ...

  2. mybatis源码解读(二)——构建Configuration对象

    Configuration 对象保存了所有mybatis的配置信息,主要包括: ①. mybatis-configuration.xml 基础配置文件 ②. mapper.xml 映射器配置文件 1. ...

  3. maxSubArray

    Description: Find the contiguous subarray within an array (containing at least one number) which has ...

  4. Mina框架(实战详解)

    Apache Mina Server 是一个网络通信应用框架,为开发高性能和高可用性的网络应用程序提供了非常便利的框架. 特点:异步的NIO框架,将UDP当成"面向连接"的协议 一 ...

  5. Java基础:Java虚拟机(JVM)

    当我们第一次学习Java时这些原理上的东西就会被提到,但是很少有真正去学习.今天开始从头过一遍Java,打算从JVM开始. 1. JVM是什么 2. JRE和JDK 3. JVM结构 3.1. 程序计 ...

  6. asp.net路径问题

    -------------初级篇---------------------------------------- 在一般的href中路径的引用问题   ./index.aspx与index.aspx都 ...

  7. Robot framework之元素定位实战

    1.1  id 和name 定位 Web页面都是由许多标签和元素组成的,每个标签或元素都是很多属性,好比一个人   id 和name 可以看作一个人的身份证号和姓名.下面看下教育局招生系统的用户名输入 ...

  8. 【方案】mvc 保证定时器回收限制

    在项目中我们或多或少的遇到一些需要定时触发或者计算的东西,这个时候我们就需要定时器来作为解决方案.非常好思路清晰,业务逻辑完好,定时器也开好了,当我们信心满满的挂到IIS服务器的时候,发现写的定时器在 ...

  9. UnicodeDecodeError: 'utf-8' codec can't decode byte 0xef in position 99: invalid continuation byte

    Traceback (most recent call last): File "/Users/c2apple/PycharmProjects/easyToPython/fileMethod ...

  10. C Primer Plus 第7章 C控制语句:分支和跳转 编程练习

    作业练习 1. #include <stdio.h> int main(void) { char ch; int spare, other, n; //空格,其他字符,换行 spare = ...