zoukankan      html  css  js  c++  java
  • 已使用 163 邮箱测试通过,且支持 SSL 连接。 发送邮件

    示例:Jack 发送一封邮件给 Rose。

    public class SendMail {
    
        public static void main(String[] args) {
            boolean isSSL = true;
            String host = "smtp.163.com";
            int port = 465;
            String from = "jack@163.com";
            String to = "rose@163.com";
            boolean isAuth = true;
            final String username = "jack@163.com";
            final String password = "jack";
    
            Properties props = new Properties();
            props.put("mail.smtp.ssl.enable", isSSL);
            props.put("mail.smtp.host", host);
            props.put("mail.smtp.port", port);
            props.put("mail.smtp.auth", isAuth);
    
            Session session = Session.getDefaultInstance(props, new Authenticator() {
                @Override
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(username, password);
                }
            });
    
            try {
                Message message = new MimeMessage(session);
    
                message.setFrom(new InternetAddress(from));
                message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
                message.setSubject("主题");
                message.setText("内容");
    
                Transport.send(message);
            } catch (AddressException e) {
                e.printStackTrace();
            } catch (MessagingException e) {
                e.printStackTrace();
            }
    
            System.out.println("发送完毕!");
        }
    }

    收取邮件

    示例:Rose 收取最近一封邮件。

    import java.util.Date;
    import java.util.Properties;
    import javax.mail.Folder;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.NoSuchProviderException;
    import javax.mail.Session;
    import javax.mail.Store;
    
    public class FetchMail {
    
        public static void main(String[] args) {
            String protocol = "pop3";
            boolean isSSL = true;
            String host = "pop.163.com";
            int port = 995;
            String username = "rose@163.com";
            String password = "rose";
    
            Properties props = new Properties();
            props.put("mail.pop3.ssl.enable", isSSL);
            props.put("mail.pop3.host", host);
            props.put("mail.pop3.port", port);
    
            Session session = Session.getDefaultInstance(props);
    
            Store store = null;
            Folder folder = null;
            try {
                store = session.getStore(protocol);
                store.connect(username, password);
    
                folder = store.getFolder("INBOX");
                folder.open(Folder.READ_ONLY);
    
                int size = folder.getMessageCount();
                Message message = folder.getMessage(size);
    
                String from = message.getFrom()[0].toString();
                String subject = message.getSubject();
                Date date = message.getSentDate();
    
                System.out.println("From: " + from);
                System.out.println("Subject: " + subject);
                System.out.println("Date: " + date);
            } catch (NoSuchProviderException e) {
                e.printStackTrace();
            } catch (MessagingException e) {
                e.printStackTrace();
            } finally {
                try {
                    if (folder != null) {
                        folder.close(false);
                    }
                    if (store != null) {
                        store.close();
                    }
                } catch (MessagingException e) {
                    e.printStackTrace();
                }
            }
    
            System.out.println("接收完毕!");
        }
    }

    常用邮件协议

    发送邮件:SMTP

    收取邮件:POP3、IMAP

    常用邮件配置项

    配置项 说明
    mail.xxx.ssl.enable 是否支持 SSL 连接
    mail.xxx.host 邮件服务器主机名
    mail.xxx.port 邮件服务器端口号
    mail.xxx.auth 是否进行身份认证


    说明:xxx 表示协议名称,例如:smtp、pop3 等。

    默认端口号

      SMTP POP3 IMAP
    普通方式 25 110 143
    SSL 方式 465 995 993

    使用 Apache Commons Email 发送邮件

    import org.apache.commons.mail.Email;
    import org.apache.commons.mail.EmailException;
    import org.apache.commons.mail.SimpleEmail;
    
    public class SendMail {
    
        public static void main(String[] args) {
            boolean isSSL = true;
            String host = "smtp.163.com";
            int port = 465;
            String from = "jack@163.com";
            String to = "rose@163.com";
            String username = "jack@163.com";
            String password = "jack";
    
            try {
                Email email = new SimpleEmail();
                email.setSSLOnConnect(isSSL);
                email.setHostName(host);
                email.setSmtpPort(port);
                email.setAuthentication(username, password);
                email.setFrom(from);
                email.addTo(to);
                email.setSubject("主题");
                email.setMsg("内容");
                email.send();
            } catch (EmailException e) {
                e.printStackTrace();
            }
    
            System.out.println("发送完毕!");
        }
    }

    参考:http://commons.apache.org/proper/commons-email/userguide.html

  • 相关阅读:
    结对编程作业
    4组-Alpha冲刺-2/6
    4组-Alpha冲刺-1/6
    结对编程作业
    4组 团队展示
    python多进程遇到的问题和解决
    GNS3第一次ping通
    前缀表达式计算(栈的使用)
    欧拉筛法(线性筛)素数
    拓扑排序
  • 原文地址:https://www.cnblogs.com/jxldjsn/p/5537864.html
Copyright © 2011-2022 走看看