packagetcpip.smtp;importjava.util.Properties;importjavax.activation.DataHandler;importjavax.activation.FileDataSource;importjavax.mail.*;importjavax.mail.internet.*;/*** 本程序用java来实现Email的发送,所用到的协议为:SMTP,端口号为25;

* 方法:用Socket进行实现,打开客户端的Socket,并连接上服务器:

* 如:Socket sockClient = new Socket("smtp.qq.com",23);

* 这表示发件方连接的是QQ邮箱的服务器,端口号为23

**/publicclassEmail {/*** 整个MIME邮件对象*/privateMimeMessage mimeMsg;/*** 专门用来发送邮件的Session会话*/privateSession session;/*** 封装邮件发送时的一些配置信息的一个属性对象*/privateProperties props;/*** 发件人的用户名*/privateString username;/*** 发件人的密码*/privateString password;/*** 用来实现附件添加的组件*/privateMultipart mp;/*** 发送参数初始化,有的服务器不需要用户验证,所以这里对用户名和密码进行初始化""

*

*@paramsmtp

* SMTP服务器的地址,比如要用QQ邮箱,哪么应为:"smtp.qq.com",163为:"smtp.163.com"*/publicEmail(String smtp) {

username="";

password="";//设置邮件服务器setSmtpHost(smtp);//创建邮件createMimeMessage();

}/*** 设置发送邮件的主机(JavaMail需要Properties来创建一个session对象。

* 它将寻找字符串"mail.smtp.host",属性值就是发送邮件的主机);

*

*@paramhostName*/publicvoidsetSmtpHost(String hostName) {

System.out.println("设置系统属性:mail.smtp.host ="+hostName);if(props==null)

props=System.getProperties();

props.put("mail.smtp.host", hostName);

}/*** (这个Session类代表JavaMail 中的一个邮件session. 每一个基于

* JavaMail的应用程序至少有一个session但是可以有任意多的session。 在这个例子中,

* Session对象需要知道用来处理邮件的SMTP 服务器。*/publicbooleancreateMimeMessage() {try{

System.out.println("准备获取邮件会话对象!");//用props对象来创建并初始化session对象session=Session.getDefaultInstance(props,null);

}catch(Exception e) {

System.err.println("获取邮件会话对象时发生错误!"+e);returnfalse;

}

System.out.println("准备创建MIME邮件对象!");try{//用session对象来创建并初始化邮件对象mimeMsg=newMimeMessage(session);//生成附件组件的实例mp=newMimeMultipart();

}catch(Exception e) {

System.err.println("创建MIME邮件对象失败!"+e);returnfalse;

}returntrue;

}/*** 设置SMTP的身份认证*/publicvoidsetNeedAuth(booleanneed) {

System.out.println("设置smtp身份认证:mail.smtp.auth ="+need);if(props==null)

props=System.getProperties();if(need)

props.put("mail.smtp.auth","true");elseprops.put("mail.smtp.auth","false");

}/*** 进行用户身份验证时,设置用户名和密码*/publicvoidsetNamePass(String name, String pass) {

System.out.println("程序得到用户名与密码");

username=name;

password=pass;

}/*** 设置邮件主题

*

*@parammailSubject

*@return*/publicbooleansetSubject(String mailSubject) {

System.out.println("设置邮件主题!");try{

mimeMsg.setSubject(mailSubject);

}catch(Exception e) {

System.err.println("设置邮件主题发生错误!");returnfalse;

}returntrue;

}/*** 设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8

*

*@parammailBody

*@return*/publicbooleansetBody(String mailBody) {try{

System.out.println("设置邮件体格式");

BodyPart bp=newMimeBodyPart();

bp.setContent(""+mailBody,"text/html;charset=UTF-8");//在组件上添加邮件文本mp.addBodyPart(bp);

}catch(Exception e) {

System.err.println("设置邮件正文时发生错误!"+e);returnfalse;

}returntrue;

}/*** 增加发送附件

*

*@paramfilename

* 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常

*@return*/publicbooleanaddFileAffix(String filename) {

System.out.println("增加邮件附件:"+filename);try{

BodyPart bp=newMimeBodyPart();

FileDataSource fileds=newFileDataSource(filename);

bp.setDataHandler(newDataHandler(fileds));//发送的附件前加上一个用户名的前缀bp.setFileName(fileds.getName());//添加附件mp.addBodyPart(bp);

}catch(Exception e) {

System.err.println("增加邮件附件:"+filename+"发生错误!"+e);returnfalse;

}returntrue;

}/*** 设置发件人地址

*

*@paramfrom

* 发件人地址

*@return*/publicbooleansetFrom(String from) {

System.out.println("设置发信人!");try{

mimeMsg.setFrom(newInternetAddress(from));

}catch(Exception e) {returnfalse;

}returntrue;

}/*** 设置收件人地址

*

*@paramto

* 收件人的地址

*@return*/publicbooleansetTo(String to) {

System.out.println("设置收信人");if(to==null)returnfalse;try{

mimeMsg.setRecipients(javax.mail.Message.RecipientType.TO,

InternetAddress.parse(to));

}catch(Exception e) {returnfalse;

}returntrue;

}/*** 发送附件

*

*@paramcopyto

*@return*/publicbooleansetCopyTo(String copyto) {

System.out.println("发送附件到");if(copyto==null)returnfalse;try{

mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,

InternetAddress.parse(copyto));

}catch(Exception e) {returnfalse;

}returntrue;

}/*** 发送邮件

*

*@return*/publicbooleansendout() {try{

mimeMsg.setContent(mp);

mimeMsg.saveChanges();

System.out.println("正在发送邮件....");

Session mailSession=Session.getInstance(props,null);

Transport transport=mailSession.getTransport("smtp");//真正的连接邮件服务器并进行身份验证transport.connect((String) props.get("mail.smtp.host"), username,

password);//发送邮件transport.sendMessage(mimeMsg, mimeMsg

.getRecipients(javax.mail.Message.RecipientType.TO));

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

transport.close();

}catch(Exception e) {

System.err.println("邮件发送失败!"+e.getMessage());

e.printStackTrace();returnfalse;

}returntrue;

}publicstaticvoidmain(String[] args) {

Email themail=newEmail("smtp.qq.com");

String mailbody="Java Mail......";

themail.setNeedAuth(true);

themail.setSubject("你好");

themail.setBody(mailbody);

themail.setTo(******);

themail.setFrom(********);

themail.addFileAffix("C:/CEPxDD0D.tmp");//附件文件路径,例如:C:/222.jpg,*注;"/"的写法;themail.setNamePass(*****,******);

themail.sendout();

}

}

java 登陆邮箱_java如何登陆163邮箱,获取登陆用户的好友列表(1)相关推荐

  1. 网易vip邮箱多少钱?163邮箱名字怎么起高端?

    网易vip邮箱多少钱?163邮箱名字怎么起高端?邮箱名字的后缀每家邮箱都是固定的,但是前缀是可以设置的,无论是短位.寓意邮箱号都可以注册,tom邮箱每个月都会有特殊靓号的推出. 163vip邮箱登陆入 ...

  2. 安全邮箱是什么邮箱?怎么登录163邮箱?

    安全邮箱是什么邮箱?怎么登录163邮箱?电子邮箱中,分为免费邮箱.vip邮箱.企业邮箱三大类别,从属性即可辨别出具体用途.通常日常办公,如果是5人以上的企业,可使用企业邮箱方便管理.个人日常办公可选择 ...

  3. 163邮箱会员揭秘,163邮箱注册,你最想了解的几件事

    大家好哦,作为一名资深的互联网人 ,小仙女发现电子邮箱真的太太太重要了.领导安排的工作,不及时邮件汇报就会被批,客户的合作方案不及时发邮件确认,便会影响业绩,互联网人太难了既然电子邮箱如此重要,今天来 ...

  4. 163邮箱申请注册个人,163邮箱付费与免费版有什么区别?

    要说什么邮箱经久不衰,那163一定在其中,这个后缀系列陪伴了我们很多年,绝对是经典中的经典.最近,很多朋友想了解163邮箱申请注册个人,163邮箱付费与免费版有什么区别.今天就系统给大家分享下! 16 ...

  5. 163邮箱域名大全,163邮箱注册申请全流程详解!

    163邮箱域名大全,163邮箱注册申请全流程详解.从免费版到收费版邮箱,用了20年,电子邮箱行业发展至今,越来越的个人白领倾向选择付费邮箱.最近听说TOM VIP邮箱刚上线了163vip.com全新后 ...

  6. 哪个邮箱安全性好?电子邮箱注册怎么申请163邮箱?

    哪个邮箱安全性好?电子邮箱注册怎么申请163邮箱呢?随着现在邮箱步入移动办公场景,越来越多的商务人士开始使用邮箱,高效办公. 市场上的邮箱品牌繁多,水平参差不齐.尤其现代互联网高速发展,使用邮箱频率越 ...

  7. java 发送邮件和读取邮件(163邮箱为例)

    1,发送邮件 (1)在设置里面打开163邮箱的smtp.pop3,设置授权码 (2)在引用pom.xml中引用mail.jar <dependency > <groupId > ...

  8. 大聪明教你学Java | 实现邮件发送(以163邮箱向QQ邮箱发送邮件为例)

    前言 电子邮件的应用非常广泛,常见的如在某网站注册了一个账户,自动发送一封激活邮件:通过邮件找回密码:发送活动信息等等.很显然,这些过程不能通过人工来操作(打开浏览器.打开邮箱.创建邮件.发送邮件), ...

  9. 邮箱登录入口,163邮箱个人登录入口,163邮箱注册登录

    电子邮箱和微信是常用到的通讯方式,TOM VIP 163邮箱个人登录入口就可从微信登录,用手机邮箱登录,随时可处理邮件,网页端登录就从官网统一页面登录即可. 邮箱登录入口:微信随心邮 登录" ...

  10. 163vip邮箱怎么使用?163邮箱能群发邮件吗?

    163vip邮箱个性化设置 163邮箱是TOM邮箱的VIP商务版,使用的小伙伴偶尔会问,收费邮箱的个性化设置在哪里操作呢? 第一步 网页登陆163邮箱,点击右上角的设置,即可进入邮箱设置 第二步 在邮 ...

最新文章

  1. 搞垮服务的20条原则
  2. python 的* 代表元组 和**代表字典用法
  3. hdu 4460 friend chains spfa 最短路里面的最长路
  4. PHP代码为什么不能直接保存HTML文件——PHP生成静态页面教程
  5. 【Python】Jupyter Notebook这款「骚气满满」的小工具,简直太爱了!
  6. 7月送书中奖名单,快看!
  7. ps_基础技术提升topic基础知识调研
  8. 『数据可视化』基于Python的数据可视化工具
  9. 如何在虚拟机安装并使用NTFS for Mac 15
  10. Atitit.index manager api design 索引管理api设计
  11. 计算机漏洞英语怎么说,漏洞英文,漏洞英文发音bug。
  12. C语言 使用DFT得到信号幅度谱
  13. 流利阅读 2019.3.9 Young children should be taught in their mother tongue, not in English
  14. 华硕主板怎么进入bios
  15. 如何在PS中将一张图片一次性裁剪保存成多张图片
  16. 抖音不搞「盲目」社交
  17. 数学建模暑期集训6:用SPSS对数据进行多元线性回归分析
  18. node拉取微信权限,实现自定义分享微信朋友圈等操作
  19. 复合平面波超声成像(Matlab Field II仿真)
  20. python 学习笔记第一篇---下载网页内所有图片

热门文章

  1. RPC系列协议--rfc1191--Path MTU Discovery
  2. 能不能把ASMR做成一门正经生意?
  3. Apache-DBUtils实现CRUD操作
  4. 日期类超详解(c++入门)
  5. 关于Three.js 加载地面贴图的坑
  6. javascript综合
  7. 本文为转载-------Web常使用的功能经验笔记第1季 -转载自刘岩
  8. windows xp系统安装教程
  9. 隐藏文件的查看(Win/Linux/macOS)
  10. rhcsa第二天作业9道题