JavaMail的使用

来源:互联网 发布:c#在线考试系统源码 编辑:程序博客网 时间:2024/06/08 04:20

一、整体思路

 javamail
    * 引用场景
        * 注册账号时,进行账号激活
        * 邮件订阅
        * 生日祝福
    * 名词
        * 邮件服务器:接收邮件、发送邮件功能软件,安装到相应计算机。
        * 电子邮箱email:邮件服务器上申请的账号。
    * 协议
        * SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,发送邮件服务器,SMTP服务器:25
        * POP3(Post Office Protocol 3)即邮局协议,接收邮件服务器,POP3服务器。默认端口:110
        * IMAP (Internet Mail Access Protocol)交互邮件访问协议,接收邮件服务器。默认端口:143
            * 与POP3协议的主要区别是用户可以不用把所有的邮件全部下载,可以通过客户端直接对服务器上的邮件进行操作
    * javamail
        * 使用java程序发送电子邮件。
        * 使用第三发编写工具 java ee
            * 核心jar :mail.jar        --> javamail1_4_5.zip
            * 依赖jar:activation.jar     --> jaf-1_1_1.zip (编写复杂邮件时使用,先阶段不用)
    * javamail 编写流程
        * 1 获得回话 Session    -->相当于连接
        * 2 编写消息 Message    -->相当于邮件
        * 3 发送邮件 Transport

二、具体步骤

1,使用JavaMail,首先要导入mail.jar

2,代码如下,请找编号1,2,3,4依次看:

@Testpublic void test3() throws Exception{//2,但是Session需要俩个参数, props和authenticator//props参数设置连接到哪个邮件服务器,如连接到QQ Mail 服务器Properties props = new Properties();props.setProperty("mail.host", "smtp.qq.com");//并且设置连接的时候需要用户名密码进行验证props.setProperty("mail.smtp.auth", "true");//authenticator参数是权限参数, 设置用户名和密码,因为他是抽象类,所以这里使用了匿名内部类解决Authenticator authenticator = new Authenticator() {//这里设置发送邮件需要的用户名和密码,如:用户名:"123456@qq.com",密码:"password"@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication("123456@qq.com","password");}};//1,首先发送邮件要与相关的发送服务器建立连接,Session类代表连接Session session = Session.getDefaultInstance(props, authenticator);//3,连接到服务器以后,开始写邮件内容,Message类代表邮件Message msg = new MimeMessage(session);//设置发件人,当然就是自己;但是需要一个Address参数,有异常全部抛出不做处理msg.setFrom(new InternetAddress("249641623@qq.com"));//设置收件人,想给谁发就写谁的邮箱,但这里有个type参数他有3种取值://BCC:暗送,不懂意思去百度//CC:抄送,不懂意思去百度//TO:发送某人,也是我们要选的参数。//例如发送到mydemo@163.com这个邮箱msg.setRecipient(RecipientType.TO, new InternetAddress("mydemo@163.com"));//发送邮件的主题msg.setSubject("我是主题");//发送邮件的内容msg.setContent("这里是内容!!!!", "text/html;charset=UTF-8");//4,所有内容设置完毕,最后一步,发送邮件Transport.send(msg);}

3,留着以后忘记了在看看。


0 0
原创粉丝点击