关于javamail的学习总结

三个协议:

SMPT(simple email Tarnsfer protocol,简单邮件发送协议):发邮件协议

POP3(Post Office Protocol Version 3,邮局协议第三版):收邮件协议

IMPA(Internet Messege Access Protocol,因特网消息访问协议)收发邮件协议,暂时不涉及

过程:

发邮件:客户端通过SMPT协议将邮件上传到邮件服务器,邮件服务器将邮件保存到数据库。

收邮件:邮件服务器从数据库中获得邮件,客户端从邮件服务器中下载该邮件

Javamail:发送邮件

三个核心类:

Session:如果你得到了它,表示与服务器建立了连接。与Connection作用类似

MimeMessage:它表示一个邮件对象,用过它的setXXX()方法可以设置收件人,发件人,主题,主体等

TransferPort:只有一个功能:发邮件

1..导包:mail.jar   activation.jar

2.得到Session(注意区分ServletSession)

3.创建MimeMessege msg

4.调用msg的相关方法设置:收件人,发件人,主题,主体等

5.发送:TransferPort.send(msg);

发普通邮件代码:

Properties prop=new Properties();

          prop.setProperty("mail.host","smtp.126.com");//设置服务器主机地址

          prop.setProperty("mail.smtp.auth","true");//

          Authenticator auth=new Authenticator(){//它是一个抽象类,需要我们自己实现

                    @Override

                   protectedPasswordAuthentication getPasswordAuthentication() {

                            //TODO Auto-generated method stub

                            return  newPasswordAuthentication("******@**", "**********");

                    }

         };

         Sessionsession=Session.getInstance(prop, auth);         

         MimeMessagemsg=new MimeMessage(session);//创建MimeMessage对象

         msg.setFrom(newInternetAddress("***********@****"));//设置发件人

         msg.setRecipients(RecipientType.TO,"**********");//设置收件人

         //msg.setRecipients(RecipientType.CC,"*************");//设置抄送

         //msg.setRecipients(RecipientType.BCC,"***********");//设置暗送

         msg.setSubject("这是一封来自java的邮件");//

         msg.setContent("这是一封测试邮件","text/html;charset=utf-8");

         Transport.send(msg);     

发带附件的邮件代码:

Properties prop=new Properties();

     prop.setProperty("mail.host","smtp.126.com");//设置服务器主机地址

     prop.setProperty("mail.smtp.auth","true");

     Authenticator auth=new Authenticator(){//它是一个抽象类,需要我们自己实现

        @Override

       protected PasswordAuthentication getPasswordAuthentication() {

           // TODO Auto-generatedmethod stub

           return  newPasswordAuthentication("**********","**********");

        }

    };

    Session session=Session.getInstance(prop, auth); 

    MimeMessage msg=new MimeMessage(session);//创建MimeMessage对象

    msg.setFrom(new InternetAddress("**********"));//设置发件人

    msg.setRecipients(RecipientType.TO,"**********");//设置收件人

    //msg.setRecipients(RecipientType.CC,"**********");//设置抄送

    //msg.setRecipients(RecipientType.BCC,"**********");//设置暗送

    msg.setSubject("这是一封来自java的邮件");//

    //创建多部分主体

    MimeMultipart list=new MimeMultipart();//创建多部件主体

    MimeBodyPart part1=new MimeBodyPart();//创建BodyPart

    part1.setContent("这是一封测试邮件","text/html;charset=utf-8");

    list.addBodyPart(part1);//bodyPart添加到list

    MimeBodyPart part2=new MimeBodyPart();//再创建一个BodyPart

    part2.attachFile(new File("e:/others/psb.jpg"));

    part2.setFileName(MimeUtility.encodeText("帅哥.jpg"));//设置文件名称其中encodeText("帅哥.jpg")处理中文乱码问题

    list.addBodyPart(part2);//part2添加到list

    msg.setContent(list);//list设置给msg

    Transport.send(msg);

备注:首先在邮箱中设置支持SMPT发送邮件,注意自己的smtp密码,与邮箱密码区分,其次要注意Sessionsession=Sesssion.getInstance(prop,auth);(注意两个参数,少一个不报错,而且发送不成功)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值