java发送邮件简单实现以及原理(亲…

来源:互联网 发布:淘宝版权投诉处罚 编辑:程序博客网 时间:2024/04/29 08:20
个人官方网站 :点击进入


由于公司业务需要 ,需要在项目中实现一个简单的发送邮箱激活邮箱功能,所以这研究了一下邮件发 送的 原理以及工作流程 ,因为我们平常发送邮箱基本不需要太大功能 ,所以 本文只简单介绍一下java中怎么发送邮件一封邮件

导包 ! 导包! 导包!!!!重要的事情说三遍(工程中导入mail.jar)
首先  简单的理解一下我们java程序怎么写才能满足我们的需求
大致分为一下几个步骤:




第一步 :需要先准备一个发送邮件的配置类(Properties),因为我们发送邮件需要配置一些参数,
比如 ,主机 端口 协议 等等
Properties props = new Properties();//这是配置类






第二步:需要打开一个会话(Session)通过这个会话的到去链接邮箱服务器,
这里需要把我们上步的配置类会话类(Session)当做参数传入

Session session = Session.getInstance(props);//这是会话类






第三步:需要创建邮件内容的类(Message)通过这个类创建具体的邮件内容,
比如 ,发件人 收件人,主题 等等

Message msg = new MimeMessage(session);//这是邮件内容类





好了   我们的邮件基本上都已经配置完成了,现在就可以创建邮件发送类将邮件发送出去
需要说明的是,如果我们以上的三步没有配置邮件发送相关的配置 ,那么我们也可以在
邮件发送类中配置 总之javax.mail api给了我们设计了非常灵活的邮件发送方案






第四步: 创建邮件发送类(Transport)通过这个类可以讲我们创建好的邮件发送出去

Transport transport = session.getTransport();//邮件发送类


java发送邮件简单实现以及原理(亲测成功) <wbr>泽0715 <wbr>新浪博客



· 以下是我写的一个简单的实现  ,初学的同学可以参考一下
这里我写的是新浪邮箱发送到qq邮箱的实例

 package czmail; 
 import java.util.Properties; 
 importjavax.mail.Address; 
 importjavax.mail.Message; 
 import javax.mail.Session;
 import javax.mail.Transport;
 importjavax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage;

 
 public class Demo1 { 


 public static void main(String[] args)throws Exception{

 Properties props = new Properties();//配置类
 props.setProperty("mail.smtp.auth", "true");//开启验证 必须设置
 props.setProperty("mail.transport.protocol","smtp"); //设置协议 必须设置

 Session session =Session.getInstance(props); //会话类
 session.setDebug(true); 

 Message msg = new MimeMessage(session);//邮件类
 msg.setText("测试邮箱发送"); 
 msg.setSubject("java测试"); 
 msg.setFrom(newInternetAddress("新浪邮箱地址"));//比如 lyp@sina.com 
 Transport transport =session.getTransport(); 
 transport.connect("smtp.sina.com", 25,"用户名", "密码");用户名 示例 lyp 
//新浪邮箱主机 发送的端口 自己的用户名,密码
 transport.sendMessage(msg, 
 new Address[]{newInternetAddress("1360461332@qq.com")}); 
 transport.close(); } }


通过上面的实例程序就可以实现简单的发送一个邮箱的功能 ,还有些需要注意的就是,
如果出现错误 ,检查是否自己邮箱是否开启smtp协议 以本例为例 去自己的新浪邮箱
设置smtp为开启状态

好了   以上就可以实现简单java发送邮件的发送功能


有问题发我邮箱  1360461332@qq.com




0 0