使用 JavaMail 实现邮件发送与收取
来源:互联网 发布:极大极小值搜索算法 编辑:程序博客网 时间:2024/05/20 18:48
已使用 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() { @Overrideprotected 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
常用邮件配置项
说明:xxx 表示协议名称,例如:smtp、pop3 等。
默认端口号
使用 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://my.oschina.net/huangyong/blog/178641
来源: http://my.oschina.net/huangyong/blog/178641
来源: http://my.oschina.net/huangyong/blog/178641
0 0
- 使用 JavaMail 实现邮件发送与收取
- 使用 JavaMail 实现邮件发送与收取
- javamail实例-发送邮件和收取邮件
- 使用javamail实现发送邮件
- 使用javamail实现发送邮件
- 利用JavaMail实现邮件的收取
- JSP与JavaMail(7)---邮件的收取
- 使用JavaMail收取邮件并解析
- javamail使用IMAP协议收取gmail邮件
- javaMail发送邮件步骤与实现
- JAVAMAIL收取邮件
- JavaMail 实现邮件发送
- javamail实现邮件发送
- Javamail实现邮件发送
- JavaMail实现邮件发送
- javaMail实现邮件发送
- javamail实现发送邮件
- Javamail实现邮件发送
- ROS Nodehandle句柄
- java.lang.InternalError: internal error: SHA-1 not available
- UIImage的scale及size,二倍图,三倍图,像素等概念透析
- JSP指令与动作元素
- Python中斐波那契数列实现
- 使用 JavaMail 实现邮件发送与收取
- pow()函数的应用
- 内存池技术
- 碰撞触发的区别
- 06-S3C2440学习之移植2012u-boot到S3C2440(移植过程五--最终)裁剪+修改默认参数+分区设置+支持文件系统下载
- 如何把word中的多级编号中的题注“图一.1”自动变成“图1.1”
- 王冠荣耀为您加冕!中企动力再获三项大奖!
- delete和truncate的区别
- hdu 5546 Ancient Go