发送邮件java实现
下面代码可以实现普通qq邮箱发送邮件的功能,可以传附件,但是是固定的附件:
需要两个jar包:mail.jar,activation.jar
mail.jar 下载地址:
http://java.sun.com/products/javamail/downloads/index.html
activation.jar 下载地址:
http://java.sun.com/products/javabeans/jaf/downloads/index.html
必须要在qq邮箱中获得第三方登录授权码:

代码:
/**
* 发送邮件(可以携带附件)
* @param to 收件人
*/
public void sendMessage(String to)
{
// 发件人电子邮箱
String from = "XXXXXXXXX@qq.com";
// 发件人电子邮箱密码(此为QQ邮箱第三方客户端登录授权码)
String password = "**********";
// 指定发送邮件的主机为
String host = "smtp.qq.com";
// 获取系统属性
Properties properties = System.getProperties();
// 设置邮件服务器
properties.setProperty("mail.smtp.host", host);
properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.put("mail.smtp.port", "465");
properties.put("mail.smtp.socketFactory.port", "465");
properties.put("mail.smtp.auth", true);
// 获取默认session对象
Session session = Session.getDefaultInstance(properties,new Authenticator(){
public PasswordAuthentication getPasswordAuthentication()
{
//发件人邮件用户名、密码
return new PasswordAuthentication("XXXXXXXXX@qq.com", "**********");
}
});
//设置获取debug信息
session.setDebug(true);
try{
// 创建默认的 MimeMessage 对象
MimeMessage message = new MimeMessage(session);
// Set From: 头部头字段(发件人)
message.setFrom(new InternetAddress(from));
// Set To: 头部头字段(收件人)
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
// Set Subject: 头部头字段(邮件主题)
message.setSubject("测试邮件!");
// 设置消息体
message.setText("这是一个测试邮件");
//读取附件
try {
// 设置一个超文本对象
Multipart multipart = new MimeMultipart();
// 设置一个超文本的内容对象
BodyPart bodyPart;
// 创建一个文件读取对象,从文件路径将文件读取出来
File file = new File("D:/****.docx");
// 判断文件不存在则抛出异常
if(!file.exists()){
throw new IOException("文件不存在!请确定文件路径是否正确");
}
bodyPart = new MimeBodyPart();
// 创建一个文件数据对象来管理文件数据
DataSource dataSource = new FileDataSource(file);
// 将文件数据设置成统一的数据然后设置为bodyPart的数据
bodyPart.setDataHandler(new DataHandler(dataSource));
//文件名要加入编码,不然出现乱码
bodyPart.setFileName(MimeUtility.encodeText(file.getName()));
// 将bodyPart设置为附件的内容
multipart.addBodyPart(bodyPart);
//将附件加入邮件中
message.setContent(multipart);
} catch (Exception e) {
e.printStackTrace();
} // 获得transport示例对象
Transport transport = session.getTransport("smtp");
// 打开连接
transport.connect(host, from, password);
// 将message对象传递给transport对象,将邮件发送出去
transport.sendMessage(message, message.getAllRecipients());
// 关闭传输对象
transport.close();
System.out.println("Sent message successfully....");
}catch (MessagingException mex) {
mex.printStackTrace();
}
}
发送邮件java实现的更多相关文章
- 爬虫获取邮箱,存入数据库,发送邮件java Mail
在网页上获取邮箱: package com.my.test; import java.io.BufferedReader; import java.io.InputStreamReader; impo ...
- 使用 Java 发送邮件
在我们的应用程序中有时需要给用户发送邮件,例如激活邮件.通知邮件等等.那么如何使用 Java 来给用户发送邮件呢? 使用 java 代码发送邮件 使用工具类发送邮件 使用Spring进行整合发送邮件 ...
- Java 学习(18):Java 序列化& 网络编程& 发送邮件
--Java 序列化 -- 网络编程 -- 发送邮件 Java 序列化 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据.有关对象的类型的信 ...
- 常用的Java代码汇总
1. 字符串有整型的相互转换 Java 1 2 <strong>Stringa=String.valueOf(2); //integer to numeric ...
- java 邮件
使用java语言实现邮件的简单的发送和接受. 说明:使用Java应用程序发送E-mail比较简单,在使用下列程序之前,你需要将mail.jar和activation.jar 添加到你的CLASSP ...
- java项目小手册
集合了一些常用的小片段 1. 字符串有整型的相互转换 Java代码 String a = String.valueOf(2); //integer to numeric string int i = ...
- Java发送邮箱
smtp与pop3 SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议 SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器 POP3是Post Office ...
- (私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例)
(私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例) https://pan.baidu.com/s/1L54VuFwCdKVnQGVc8vD1TQnwmj java手册 Ja ...
- Java实现邮箱验证码
前言 相比于java实现短信验证码,邮箱验证码就简单了许多,目前只是简单的利用java发送自定义内容至指定邮箱,等过几天再弄短信和邮箱验证码Web版本的.查询网上资料,得知相比于网易邮箱,QQ邮箱是最 ...
随机推荐
- 修复CefSharp浏览器组件中文输入Bug
概述 最近在win10上开发wpf应用,需要将CefSharp中wpf版本的浏览器组件(版本号v51.0.0)嵌入到应用中,但是发现不支持中文输入,GitHub上有这个问题的描述,参照其提到的方法可以 ...
- linux 中ls命令函数
#include<stdio.h>#include<sys/types.h>#include<sys/stat.h>#include<dirent.h> ...
- 图片与文字在div里实现垂直水平都居中
第一种方法,利用盒布局实现 <style type="text/css">/*盒布局实现图片与文字水平垂直居中*/ .div1{ width: 100%; heig ...
- jsoup_解析任意网站,做任意网站客户端
jsoup是一个解析网页源码的开源库,他能按照给定的规则提取出一个网页中的任意元素,和其他网页解析库不同的是,他提取网页内容的方式和css.jquery的选择器非常相似.因此如果你懂得前端的知识,只需 ...
- Service(Local Service)简介
一.Service的作用 主要用于在后台处理一些耗时的逻辑操作,或者去执行某些长期运行的操作. 二.Service的创建 1.主要方法 IBinder onBind(Intent intent):必须 ...
- MySQL操作类的封装(PHP)
<?php class mysql{ /** * 报错函数 * * @param string $error */ function err($error){ die("对不起,您的操 ...
- 初学swift笔记变量的定义(一)
swift变量的定义 1 import Foundation /* 变量的定义 变量的类型是可以不用写的 var a=10 常量的定义 let修饰 */ print(a) let b= print(b ...
- Sublime Text2使用技巧
推荐Lucifr和JerryQu的几篇博文: Sublime Text 2 入门及技巧 via: http://lucifr.com/139225/sublime-text-2-tricks-and- ...
- 【翻译】MVC Music Store 教程-概述(二)
1. 文件->新建项目 软件安装 此篇将从运用免费的Visual Web Developer 2010Express来创建ASP.NET MVC3开始,逐步的添加一些功能来创建一个完整的应用程序 ...
- Oracle EBS-SQL (WIP-1):检查非标任务没挂需求.sql
SELECT WE.WIP_ENTITY_NAME, MSI.SEGMENT1, MSI.DESCRIPTION, WDJ.CLASS_CODE, WDJ.START_QUANTITY, WDJ.SC ...