已使用 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 等。

默认端口号

 SMTPPOP3IMAP
普通方式25110143
SSL 方式465995993

使用 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

转载于:https://www.cnblogs.com/jxldjsn/p/5537864.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值