Email实例
- import java.util.Properties;
- import javax.activation.DataHandler;
- import javax.activation.DataSource;
- import javax.activation.FileDataSource;
- import javax.mail.BodyPart;
- import javax.mail.Message;
- import javax.mail.Multipart;
- import javax.mail.Session;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeBodyPart;
- import javax.mail.internet.MimeMessage;
- import javax.mail.internet.MimeMultipart;
- import javax.mail.Transport;
- public class email {
- public void send(String emailHost, //smtp服务器
- String toEmail, //收件人邮箱
- String additionalPath, //附件路径
- String additionalName, //附件名称
- String myEmailUser, //发件邮箱
- String myEmailPwd, //密码
- String emailTitle, //邮件标题
- String context ){ //内容
- Properties props = new Properties();
- props.put("mail.smtp.emailHost",emailHost);
- props.put("mail.smtp.auth", "true");
- props.put("mail.smtp.port", "");//qq专用其它不需要
- Session session = Session.getDefaultInstance(props);
- session.setDebug(true);
- MimeMessage message = new MimeMessage(session);
- try {
- message.setFrom(new InternetAddress(myEmailUser)); // 加载发件人地址
- message.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));// 加载收件人地址
- message.setSubject(emailTitle);// 加载标题
- Multipart multipart = new MimeMultipart();// 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
- BodyPart contentPart = new MimeBodyPart();
- contentPart.setText(context);// 设置邮件的文本内容
- multipart.addBodyPart(contentPart);
- BodyPart messageBodyPart = new MimeBodyPart();// 添加附件
- DataSource source = new FileDataSource(additionalPath);
- messageBodyPart.setDataHandler(new DataHandler(source));// 添加附件的内容
- sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
- messageBodyPart.setFileName("=?GBK?B?"+enc.encode(additionalName.getBytes())+"?=");
- multipart.addBodyPart(messageBodyPart);
- message.setContent(multipart);//将multipart对象放到message中
- message.saveChanges();// 保存邮件
- Transport transport = session.getTransport("smtp");// 发送邮件
- transport.connect(emailHost, myEmailUser, myEmailPwd);// 连接服务器的邮箱
- transport.sendMessage(message, message.getAllRecipients());// 把邮件发送出去
- transport.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- email email = new email();
- email.send("smtp.qq.com",
- "xxxxxxxxx@qq.com",
- "E:\\text.txt",
- "附件名称随便",
- "xxxxxxxxx@qq.com",
- "xxxxxxxxxrqudbgie",//qq为开启smtp给的密钥,其它为密码
- "测试邮件",
- "我的最新测试邮件!!"
- );
- }
Email实例的更多相关文章
- AngularJS中介者模式实例
在任何应用程序中,中介者模式随处可见. → 有一个事件源,触发事件,传递参数→ 中介者记下这个事件,向外界广播,并带上参赛→ 有一个地方侦听中介者事件,一旦事件源触发事件,就从中介者手里获取事件相关参 ...
- html常用的知识点以及混合框架
html中: <hr/> 在页面中创建水平线 例如: <p> p标签是定义段落 > alt 作为可预备可替换信息,在无法加载图片时显示文字信息 定义htm ...
- Django【进阶篇】
目录 一.Model 二.admin 三.Form组件 四.Cookie 五.Session 六.分页 七.序列化 一.Model 数据库的配置 1.django默认支持sqlite,mysql, o ...
- ceph radosgw-admin的操作
常用操作: 生成一新用户: 在两个集群当中都创建相同的管理用户 radosgw-admin user create --uid=admin --display-name=admin --access_ ...
- html5新增标签/删除标签
闲聊: 最近小颖工作稍微比较轻松,没事就看看慕课,看了看:HTML5之元素与标签结构,里面简单讲解了下HTML5的一些新特性,小颖之前没写过HTML5的页面,所以就当写笔记将那些新的特性整理出来,也方 ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- Java 学习(18):Java 序列化& 网络编程& 发送邮件
--Java 序列化 -- 网络编程 -- 发送邮件 Java 序列化 Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据.有关对象的类型的信 ...
- Ruby Rails学习中:Ruby内置的辅助方法,基础内容回顾补充
一. Ruby内置的辅助方法 1.打开文件:app/views/layouts/application.html.erb(演示应用的网站布局) 来咱把注意力放在圈起来的那一行: 这行代码使用 Rail ...
- C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)
下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用: using System.Net.Mail; using System.Text; using System.Net; ...
随机推荐
- CentOS系统实现SSH无密码登录的方法
一.环境配置 1.服务端:CentOS release 5.3 IP:222.73.115.198 2.客服端:CentOS release 5.8 IP:192.168.4.244 二.配置SSH无 ...
- Spring 源码学习:day1
前言: 最近也不知道该忙些什么样的事情.便随便看看源码算了. 正文: (1) 在网上下载 Spring 的源码: 可以采用 git 方式下载 https://github.com/spring-pro ...
- [Paper] **Before GAN: sparse coding
读罢[UFLDL] ConvNet,为了知识体系的完整,看来需要实战几篇论文深入理解一些原理. 如下是未来博文系列的初步设想,为了hold住 GAN而必备的知识体系,也是必经之路. [Paper] B ...
- 更换 homebrew 国内镜像源
Brew 是OS X 上类似apt-get以及yum的一个软件包管理器,它依托于Github……………… 所以,虽然你侥幸下载到了 brew,但你肯定是无法更新 brew 的.原因你懂.不过虽然不能更 ...
- js添加事件处理程序
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 前端和后端的数据交互(jquery ajax+python flask+mysql)
上web课的时候老师布置的一个实验,要求省市连动,基本要求如下: 1.用select选中一个省份. 2.省份数据传送到服务器,服务器从数据库中搜索对应城市信息. 3.将城市信息返回客户,客户用sele ...
- kafka+zookeeper环境配置(linux环境单机版)
版本: CentOS-6.5-x86_64 zookeeper-3.4.6 kafka_2.10-0.10.1.0 一.zookeeper下载与安装 1)下载 $ wget http://mirror ...
- Flask web开发之路一
之前学过一段时间的flask,感觉还是挺好用的,自己的专利挖掘项目也想这个web框架来搭建,于是重新开始基础学习 环境:win10,python3.6,pycharm2017,虚拟环境virtuale ...
- c语言中的左移和右移
先说左移,左移就是把一个数的所有位都向左移动若干位,在C中用<<运算符.例如: int i = 1;i = i << 2; //把i里的值左移2位 也就是说,1的2进制是00 ...
- hdu4847 Wow!Such Doge!【字符串】【暴力】
Wow! Such Doge! Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)T ...