JavaMail简单收发邮件

来源:互联网 发布:黄药师软件视频 编辑:程序博客网 时间:2024/06/04 00:27

JavaMail简单收发邮件

首先准备 javax.mail.jar,将jar包导入java工程,开始编写代码

邮件参数类,定义好邮件需要的一些参数字段

/** * @Title: MailParam.java * @desc: 邮件参数bean * @author mengchuan.li */public class MailParam {    private int port;// 端口    private String host;// 服务器    private String user;// 登录名    private String password;// 密码    private String from;// 发送邮箱    private String to;// 接受邮箱    private boolean isSSL;// SSL加密    private String agreement;// 协议类型    private String contant;//正文    private String subject;//标题    /****get set****/    ..............}

邮件发送

    /**     *      * @Title: sendMessage     * @Desc: 发送邮件 stmp     * @param mail     */    public void sendMessage(MailParam mail) {        System.out.println("开始发送邮件");        Properties props = new Properties();        props.put("mail.transport.protocol", mail.getAgreement());        props.put("mail.smtp.host", mail.getHost());        props.put("mail.smtp.port", mail.getPort());        //邮件服务器ssl加密//      if (mail.isSSL()) {//          props.put("mail.smtp.starttls.enable", "true");//          MailSSLSocketFactory sf = null;//          try {//              sf = new MailSSLSocketFactory();//          } catch (Exception e) {//              e.printStackTrace();//          }//          sf.setTrustAllHosts(true);//跳过证书认证//          props.put("mail.smtp.ssl.enable", "true");//          props.put("mail.smtp.ssl.socketFactory", sf);//      }        Session mailSession = Session.getInstance(props);        Message msg = new MimeMessage(mailSession);        Transport transport = null;        try {            msg.setSubject(mail.getSubject());            msg.setFrom(new InternetAddress(mail.getFrom()));            msg.setContent(mail.getContant(), "text/html;charset=UTF-8");            InternetAddress to = new InternetAddress(mail.getTo());            msg.setRecipient(RecipientType.TO, to);            transport = mailSession.getTransport();            transport.connect(mail.getUser(), mail.getPassword());            transport.sendMessage(msg, msg.getAllRecipients());        } catch (Exception e) {            System.out.println("邮件发送失败" + " subject:" + mail.getSubject());            e.printStackTrace();        } finally {            try {                transport.close();            } catch (MessagingException e) {                e.printStackTrace();            }        }        System.out.println("邮件发送成功");    }

邮件接收,和邮件发送类似

    /**     *      * @Title: receiveMessage     * @Desc: 接收邮件 pop3     * @param mail     */    public void receiveMessage(MailParam mail) {        Properties props = new Properties();        props.put("mail.transport.protocol", mail.getAgreement());        props.put("mail.pop3.host", mail.getHost());        props.put("mail.pop3.port", mail.getPort());//      if (mail.isSSL()) {//          props.put("mail.pop3.starttls.enable", "true");//          MailSSLSocketFactory sf = null;//          try {//              sf = new MailSSLSocketFactory();//          } catch (Exception e) {//              e.printStackTrace();//          }//          sf.setTrustAllHosts(true);//          props.put("mail.pop3.ssl.enable", "true");//          props.put("mail.pop3.ssl.socketFactory", sf);////      }        Session session = Session.getDefaultInstance(props);        Folder folder = null;        Store store = null;        try {            store = session.getStore(mail.getAgreement());            store.connect(mail.getUser(), mail.getPassword());            folder = store.getFolder("INBOX");            folder.open(Folder.READ_ONLY);            Message[] msgs = folder.getMessages();            //遍历邮件,简单打印邮件信息            for (Message msg : msgs) {                System.out.println("***************************************");                System.out.println("from:   " + msg.getFrom()[0]);                System.out.println("sub:    " + msg.getSubject());                System.out.println("content:" + msg.getContent().toString());                System.out.println("***************************************");            }        } catch (Exception e) {            e.printStackTrace();        } finally {            try {                folder.close(false);                store.close();            } catch (MessagingException e) {                e.printStackTrace();            }        }    }
0 0
原创粉丝点击