当前位置:  技术问答>java相关

30分求javamail的验证和收邮件(再线)

    来源: 互联网  发布时间:2015-08-05

    本文导语:  求javamail的的smtp发邮件验证,和pop3收邮件。 | package ejb; import javax.mail.*; import java.util.*; import javax.mail.internet.*; import java.io.*; import javax.activation.*; public class smtpBean {         String inf...

求javamail的的smtp发邮件验证,和pop3收邮件。

|
package ejb;

import javax.mail.*;
import java.util.*;
import javax.mail.internet.*;
import java.io.*;
import javax.activation.*;

public class smtpBean {
        String info  ;     //存储出错信息
        String m_user;     //用于需要验证的用户名
        String m_pass;     //口令
        String m_host;   //SMTP服务器名称
        int m_port;          //端口号,缺省为25

        String m_from;     //发件人
        String m_to;       //收件人
        String m_cc;       //抄送
        String m_bcc;      //密送
        String m_subject;  //主题
        String m_body;     //内容体
        LinkedList m_attach=null;       //附件的文件名列表

      public smtpBean() {
          info      =""         ;
          m_user    =""         ;
          m_pass    =""         ;
          m_host  =""         ;
          m_port    =25         ;
          m_from    =""         ;
          m_to      =""         ;
          m_cc      =""         ;
          m_bcc     =""         ;
          m_subject =""         ;
          m_body    =""         ;
          m_attach  =null       ;
        }
        public String getInfo() {
          return info;
        }
        public void setInfo(String newSample) {
          info = newSample;
        }

        //设定smtp服务器用户名(可选)
        public void setUser(String user){
                m_user=user;
        }


        //设定smtp服务器口令(可选)
        public void setPass(String pass){
                m_pass=pass;
        }

        //设定smtp的地址和端口号(可选)
        public void setServer(String server,int port){
                if(port>0) m_port=port;
                m_host=server;
        }

        //设定smtp服务器地址,端口号使用缺省值
        public void setServer(String server){
                m_host=server;
        }

        //发件人
        public void setFrom(String from){
                m_from = from;
        }

        //收件人
        public void setTo(String to){
                m_to = to;
        }

        //抄送(可选)
        public void setCc(String cc){
                m_cc=cc;
        }

        //密送(可选)
        public void setBcc(String bcc){
                m_bcc=bcc;
        }

        //设置新的主题(可选)
        public void setSubject(String subject){
                m_subject=subject;
        }

        //设置信的内容,若以或开头的内容为text/html格式
        public void setBody(String body){
                m_body=body;
        }

        //可以多次添加附件,文件名最好是全路径,使用相对路径容易出错
        public void attach(String attachfile){
                if(m_attach==null) m_attach=new LinkedList();
                m_attach.add(attachfile);
        }

        public boolean sendMail() throws Exception{

                Properties props=System.getProperties();
                props.setProperty("mail.transport.protocol","smtp");    //smtp协?
                props.setProperty("mail.smtp.host",m_host);   //服务器地址
                props.setProperty("mail.smtp.port",""+m_port);  //端口号


                //认证信息
                if(m_user!=null && m_pass!=null && m_user.length()>0 && m_pass.length()>0){
                        props.setProperty("mail.smtp.auth","true");

                }

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



                MimeMessage msg=new MimeMessage(sess);

                //发件人
                msg.setFrom(new InternetAddress(m_from));

                //收件人、抄送、密送
                msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(m_to));
                if(m_cc!=null && m_cc.length()>0)
                        msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(m_cc));
                if(m_bcc!=null && m_bcc.length()>0)
                        msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(m_bcc));

                //主题
                if(m_subject!=null) msg.setSubject(m_subject);

                //发件日期
                msg.setSentDate(new Date());

                //文本内容
                MimeMultipart content=new MimeMultipart();
                if(content==null) return false;

                MimeBodyPart part;
                if(m_body!=null && m_body.length()>0){
                        part=new MimeBodyPart();
                        String type="text/plain";
                        if(m_body.startsWith("") || m_body.startsWith("")){
                                type="text/html";
                        }
                        part.setText(m_body);

                        //以和开始的文本为text/html类型
                        part.setHeader("Content-Type",type);

                        content.addBodyPart(part);

                }

                //添加附件
                if(m_attach!=null){

                        String filename;
                        Iterator it=m_attach.iterator();

                        while(it.hasNext()){
                                filename=(String)it.next();
                                if(filename==null || filename.length()0 && m_pass.length()>0){
                        Transport trans=sess.getTransport();
                        trans.connect(m_host,m_user,m_pass);
                        trans.sendMessage(msg,InternetAddress.parse(m_to));
                        //if(m_cc!=null && m_cc.length()>0){
                         //   trans.sendMessage(msg,InternetAddress.parse(m_cc));
                        //}
                        trans.close();
                }                //否则,不需要用户名和口令使用静态方法发送由件
                else Transport.send(msg);

                return true;
        }



}


|




 
 
 


  
 


    
 
 

您可能感兴趣的文章:

  • 请教javamail发信的身份验证问题!!!
  • 用javamail发邮件,怎麽才能通过smtp的验证
  • 用JavaMail发信(Smtp)怎么加身份验证????
  • 请教javamail的smtp验证!在线等待
  • 如何用JAVAMAIL实现“SMTP验证”?
  • 发送Mail时如何通过服务器的身份验证?(非JavaMail方式)
  • 如何在JSP中使用JAVAMAIL发送需要身份验证的信件???
  • 我用Javamail给对方发送邮件,如何判断对方是否已经收到邮件?
  • javamail如何删除服务器上的邮件?
  • Java邮件接口 JavaMail
  • JavaMail中如何获取所有新邮件?
  • JavaMail中如何改变邮件状态?
  • javamail中关于收邮件的问题!!!
  • 请问使用JavaMail如何将一个邮件原样转发给另外一个人?
  • 请问使用JavaMail如何将一个邮件原样转发给另外一个人?
  • 怎么用javamail彻底删除邮件。不是放到垃圾箱里。。
  • 请问用JavaMail如何删除某一特定邮件?高分相送!
  • 用javamail怎么获得邮件内容?
  • 高分求解:利用JavaMail发送邮件时,能否做到不通过SMTP邮件服务器转交,直接将邮件发到对方邮箱中.
  • 请问怎样用JAVAMAIL实现自动给用户发送邮件的功能?弄好了送100分
  • 请教用javamail群发邮件的原理。
  • javamail对新邮件的处理
  • 用JavaMail收到的邮件,有什么方法能知道主题及内容的编码方式呢?
  • javamail收邮件出现问题
  • 请问JavaMail如何改变已读邮件的状态?
  • 有谁用过javamail做过邮件系统的请提一下建议,答者有分!
  • 用javamail如何获得邮箱中最新的邮件
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 急! 500分求助! javamail VS esmtp server 的不兼容性问题, javamail高手请进
  • 请给一个javamail的程序实例和javamail api 的下载地址100分!
  • 在那里能下载javamail,高分送上
  • 初学javamail
  • 请教熟悉JavaMail的大虾请帮帮忙,多谢了!
  • javamail如何安装?? (45分)
  • javamail-android
  • 怎样使用javamail发送带有html格式信息的文件
  • 请问JavaMail的API在什么地方(我用的是VisualAge for java 4.0),急!
  • 用javamail怎么可以成批发送
  • 关于javamail的奇怪问题,请大家相助!
  • 请问各位大虾,不用javaMail如何才能发送附件。
  • jbuilder ,javamail 问题
  • javamail附件名称的问题
  • 那里有javamail的教程?
  • javamail的monitor例子问题
  • 请问谁知道到哪里去下载javamail的api文档??
  • 急:jbuilder6.0中怎么安装javamail???
  • 怎么用javamail发送附件,小弟刚接触,请各位大侠指教,谢谢!!!
  • javamail的问题??谢谢你的关注!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3