javamail发信和收信机制(smtp、pop3、imap)

信息发布:soゝso 发布日期:2016-08-22 14:59 热度:489 分享到:

对于邮件的发送和邮件的收取,很多场景都用到过,那么下面来看一下 Java  对邮件的收发操作。

pop3收信模式

public void pop3Receive(){  
        try {  
            Properties props = System.getProperties();  
            props.setProperty("mail.pop3.host", "192.168.1.194");  
            props.setProperty("mail.pop3.port", "110");  
            props.setProperty("mail.store.protocol", "pop3");  
            props.setProperty("mail.debug", "true");  
            String username = "[email protected]";  
            String password = "123456";  
            Session session = Session.getInstance(props);  
              
            Store store = (Store) session.getStore("pop3");  
            store.connect(username,password);  
            Folder folder = null;  
            folder =  (Folder) store.getFolder("INBOX");  
            if (folder.exists())  
                folder.open(2);  
            Message[] messages = folder.getMessages();  
            if(messages!=null&&messages.length>0){  
                for (Message message : messages) {  
                    System.out.println(message.getSubject());  
                }  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  

imap收信

public void imapReceive(){  
        try {  
            Properties props = System.getProperties();  
            props.setProperty("mail.imap.host", "192.168.1.194");  
            props.setProperty("mail.imap.port", "143");  
            props.setProperty("mail.store.protocol", "imap");  
            props.setProperty("mail.debug", "true");  
            String username = "[email protected]";  
            String password = "123456";  
            Session session = Session.getInstance(props);  
              
            IMAPStore store = (IMAPStore) session.getStore("imap");  
            store.connect(username,password);  
            IMAPFolder folder = null;  
            folder =  (IMAPFolder) store.getFolder("INBOX");  
            if (folder.exists())  
                folder.open(2);  
            Message[] messages = folder.getMessages();  
            if(messages!=null&&messages.length>0){  
                for (Message message : messages) {  
                    System.out.println(message.getSubject());  
                }  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }

smtp 非加密方式发信

public void smtpSend(){  
        try {  
            Properties properties = new Properties();  
            properties.setProperty("mail.transport.protocol", "smtp");// 发送邮件协议  
            properties.setProperty("mail.smtp.auth", "true");// 需要验证  
            properties.setProperty("mail.smtp.port", "25");  
            properties.setProperty("mail.transport.protocol", "smtp");  
            properties.setProperty("mail.smtp.host", "192.168.1.194");  
            properties.setProperty("mail.debug", "true");//设置debug模式  
            final String username = "[email protected]";  
            final String password = "123456";  
            // 后台输出邮件发送的过程  
            Session session = Session.getInstance(properties,  
                    new Authenticator() {  
                        protected PasswordAuthentication getPasswordAuthentication() {  
                            return new PasswordAuthentication(username,  
                                    password);  
                        }  
                    });  
            // 邮件信息  
            Message messgae = new MimeMessage(session);  
            messgae.setFrom(new InternetAddress("[email protected]"));// 设置发送人  
            messgae.setText("[email protected][4PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*");// 设置邮件内容  
            messgae.setSubject("测试postfix邮件发送");// 设置邮件主题  
            // 发送邮件  
            Transport tran = session.getTransport();  
            tran.connect("192.168.1.194", username, password);// 连接到新浪邮箱服务器  
            tran.sendMessage(messgae, new Address[] { new InternetAddress("[email protected]") });// 设置邮件接收人  
            tran.close();  
        } catch (Exception e) {  
        }  
    }  

smtp 加密方式发信

public void smtpSSLSend(){  
        try {  
            MailSSLSocketFactory sf = new MailSSLSocketFactory();  
            sf.setTrustAllHosts(true);  
            Properties properties = new Properties();  
            // 邮件发送协议  
            properties.setProperty("mail.transport.protocol", "smtp");  
            // SMTP邮件服务器   
            properties.setProperty("mail.smtp.host", "192.168.1.194");  
            // SMTP邮件服务器默认端口   
            properties.put("mail.smtp.socketFactory.port", 465);//发信端口  
             // 是否要求身份认证   
            properties.setProperty("mail.smtp.auth", "true");  
             // 是否启用调试模式  
            properties.setProperty("mail.debug", "true");//设置debug模式  
            properties.put("mail.smtp.ssl.enable", "true");//是否开启ssl  
            properties.put("mail.smtp.ssl.socketFactory", sf);  
            // 发送邮件协议  
            properties.setProperty("mail.smtp.auth", "true");// 需要验证  
            final String username = "[email protected]";  
            final String password = "123456";  
              
            // 创建Session实例对象   
            Session session = Session.getDefaultInstance(properties,new Authenticator() {  
                protected PasswordAuthentication getPasswordAuthentication() {  
                    return new PasswordAuthentication(username,  
                            password);  
                }  
            });  
            // 创建MimeMessage实例对象   
            MimeMessage message = new MimeMessage(session);   
            // 设置发件人   
            message.setFrom(new InternetAddress("[email protected]"));   
            // 设置邮件主题   
            message.setSubject("SSL认证测试javamail");   
            // 设置收件人   
            message.setRecipient(RecipientType.TO, new InternetAddress("[email protected]"));   
            // 设置发送时间   
            message.setSentDate(new Date());   
            // 设置纯文本内容为邮件正文   
            message.setText("abcdefghijklmnopqrstuvwxyz");  
            //回执  
            message.setHeader("Disposition-Notification-To", "[email protected]");  
            //紧急  
            message.setHeader("X-Priority", "1");  
            // 保存并生成最终的邮件内容   
            message.saveChanges();   
            Transport.send(message);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}  


本文主题

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

¥我需要走的更远,点击我 赞助。 如果还有疑问,点击我加群,为你提供最好的解答。


工具导航地图

 
Nodejs + socket Demo 赞助二维码 赞助名单 百度口碑点赞 查看QQ群美女帅哥 点击加QQ群 听音乐 开启弹幕 X
反馈意见