⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mail.java

📁 tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛tbuy1.1.5是在netbeans环境下用JSF技术编写的一个论坛
💻 JAVA
字号:
/* * 作者: 胡李青 * qq: 31703299 * Copyright (c) 2007 huliqing * 主页 http://www.tbuy.biz/ * 你可以免费使用该软件,未经许可请勿作用于任何商业目的 * */package biz.tbuy.share.mail;import java.security.Security;import java.util.Date;import java.util.Properties;import javax.mail.Folder;import javax.mail.Message;import javax.mail.Session;import javax.mail.Store;import javax.mail.Transport;import javax.mail.URLName;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;/** * @author huliqing * <p><b>qq:</b>31703299 * <p><b>E-mail:</b><a href="mailto:huliqing.cn@gmail.com">huliqing.cn@gmail.com</a> * <p><b>Homepage:</b><a href="http://www.tbuy.biz/">http://www.tbuy.biz/</a> *  * 该类主要用于邮件的接收与发送,暂时这么多! * 在使用gmail服务下可以正常收发邮件 * 注意:考滤过163/hotmail.com等邮件服务,但由于hotmail及163等都需要付费 * 或Vip才能正常使用客户端程序收发邮件,否则无法通过验证。因为没有相关vip帐号, * 所以暂时无法验证在163或hotmail是否可以通过. */public class Mail {    private String _user;         // 密码    private String _password;     // 用户名    private String _serverReceive;// 邮件接收服务器,如:pop.gmail.com    private String _portSmtp;     // 默认的邮件发送端口:25    private String _portPop;      // 默认的邮件接收端口:110    private boolean _isSSLSmtp;   // 是否需要安全连接    private boolean _isSSLPop;    // 是否需要安全连接    private String _portSSLSmtp;  // 默认的安全连接端口smtp:465    private String _portSSLPop;   // 默认的安全连接端口pop:995    private String _serverType;   // 服务器类型 如:pop3    private String _serverSend;   // 邮件发送服务器,如:smtp.gmail.com        private String _from;    // 邮件发送方    private String _to;      // 邮件接收方    private String _subject; // 邮件标题    private Date _sentDate;  // 邮件发送日期    private String _text;    // 邮件主体信息        public Mail() {    }        public void setUser(String user) {        _user = user;    }    public void setPassword(String password) {        _password = password;    }    public void setServerReceive(String serverReceive) {        _serverReceive = serverReceive;    }    public void setPortSmtp(String portSmtp) {        _portSmtp = portSmtp;    }    public void setPortPop(String portPop) {        _portPop = portPop;    }    public void setIsSSLSmtp(boolean isSSLSmtp) {        _isSSLSmtp = isSSLSmtp;    }    public void setIsSSLPop(boolean isSSLPop) {        _isSSLPop = isSSLPop;    }    public void setPortSSLSmtp(String portSSLSmtp) {        _portSSLSmtp = portSSLSmtp;    }    public void setPortSSLPop(String portSSLPop) {        _portSSLPop = portSSLPop;    }    public void setServerType(String serverType) {        _serverType = serverType;    }    public void setServerSend(String serverSend) {        _serverSend = serverSend;    }        /**     * 设置邮件发送者的email地址,     * 如:huliqing.cn@gmail.com     * @param from 邮件发送方的地址     */     public void setFrom(String from) {        _from = from;    }        /**     * 设置邮件接收方的email地址,     * 如:huliqing@hotmail.com     * @param to 邮件接收者     */     public void setTo(String to) {        _to = to;    }        /**     * 设置邮件的标题     * @param subject 邮件的标题     */     public void setSubject(String subject) {        _subject = subject;    }        /**     * 设置邮件的发送时间,java.util.Date类型     * @param sentDate 邮件的发送时间     */     public void setSendDate(Date sentDate) {        _sentDate = sentDate;    }        /**     * 设置邮件的主体内容     * @param text 邮件的主体信息     */     public void setText(String text) {        _text = text;    }        /**     * 接收邮件,需要设置好以上各项配置信息     */     public void receive() {        try{            Properties props = new Properties();            Session session = null;            Store store = null;            Folder folder = null;            if (_isSSLPop) {                    Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());                    final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";                    props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);                    props.setProperty("mail.pop3.socketFactory.fallback", "false");                    props.setProperty("mail.pop3.port", _portSSLPop);                    props.setProperty("mail.pop3.socketFactory.port", _portSSLPop);            }            props.setProperty("mail.pop3.auth", "true");            session = Session.getDefaultInstance(props);            URLName urln = new URLName(_serverType, _serverReceive,                     Integer.parseInt(_portPop), null, _user, _password);            store = session.getStore(urln);            store.connect();            folder = store.getFolder("INBOX");            if(folder != null) {                    folder.open(Folder.READ_ONLY);  // 以只读方式打开                    Message[] messages = folder.getMessages();  // 取信                    // 暂时输出在控制台中                    System.out.println("共有邮件:["+ folder.getMessageCount() +"]\n");                    for(int i = 0; i < messages.length; i++) {                        System.out.println("--------Message:" + (i+1) + "--------");                        messages[i].writeTo(System.out);                    }            }            folder.close(false);            store.close();        }catch(Exception err) {            err.printStackTrace();        }    }        /**     * 发送邮件     * @return true 如果发送成功,否则返回false     */     public boolean send() {        Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());        final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";        Properties props = System.getProperties();        props.setProperty("mail.smtp.host", _serverSend);        if (_isSSLSmtp) {            props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);            props.setProperty("mail.smtp.socketFactory.fallback", "false");            props.setProperty("mail.smtp.port", _portSSLSmtp);            props.setProperty("mail.smtp.socketFactory.port", _portSSLSmtp);        }        props.put("mail.smtp.auth", "true");        Session session = Session.getDefaultInstance(props,                 new MailAuthenticator(_user, _password));        try{            MimeMessage mimeMess = new MimeMessage(session);    // 构造Message            mimeMess.setFrom(new InternetAddress(_from));	// 设置发信人地址            mimeMess.setRecipients(Message.RecipientType.TO,                     InternetAddress.parse(_to));                 // 设置收信人地址            mimeMess.setSubject(_subject);                       // 设置标题            mimeMess.setSentDate(_sentDate);                     // 设置发送日期            mimeMess.setText(_text);                             // 设置内容            Transport.send(mimeMess);                            // 发送邮件            return true;        }catch(Exception e) {            e.printStackTrace();            return false;        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -