JMail是进行邮件开发的组件。由于所需要的jar非官方开发,需要自行下载所需jar包,我使用的是javamail-1.4.7。
不了解收发邮件过程的请先浏览我的另一片博客:电子邮件工作原理
1.步骤:
1. 创建Properties对象,并为该对象设置相应内容
2. 创建Session对象
3. 创建Message对象,这个对象封装邮件的信息,如发件人、收件人、主题等等
4. 创建Transport对象,利用这个对象发送邮件
总的来说就两个步骤:构造邮件对象(第3步,只不过在构建邮件时需要其它对象),发送邮件(第4步)
2.发送一封简单的邮件
代码:
- package com.zyh.demo;
-
- import java.util.Properties;
-
- import javax.mail.Address;
- import javax.mail.Message;
- import javax.mail.MessagingException;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeMessage;
-
- public class Demo1 {
-
- public static void main(String[] args) throws MessagingException {
- Properties props = new Properties();
- props.setProperty("mail.smtp.auth", "true");
- props.setProperty("mail.transport.protocol", "smtp");
-
- Session session = Session.getDefaultInstance(props);
- session.setDebug(true);
-
- Message msg = new MimeMessage(session);
- msg.setFrom(new InternetAddress("zyh5540@163.com"));
- msg.setText("Hello world!");
- msg.setSubject("test");
-
- Transport trans = session.getTransport();
- trans.connect("smtp.163.com", 25, "zyh5540", "test");
- trans.sendMessage(msg, new Address[]{new InternetAddress("554077931@qq.com")});
-
- trans.close();
- }
-
- }
3.群发一封邮件
源代码:
- package com.zyh.demo;
-
- import java.util.Properties;
-
- import javax.mail.Authenticator;
- import javax.mail.Message;
- import javax.mail.Message.RecipientType;
- import javax.mail.MessagingException;
- import javax.mail.PasswordAuthentication;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeMessage;
-
-
-
-
-
-
- public class Demo2 {
-
- public static void main(String[] args) throws MessagingException {
- Properties props = new Properties();
- props.setProperty("mail.smtp.auth", "true");
- props.setProperty("mail.transport.protocol", "smtp");
- props.setProperty("mail.host", "smtp.163.com");
-
- Session session = Session.getInstance(props, new Authenticator() {
- protected PasswordAuthentication getPasswordAuthentication() {
- return new PasswordAuthentication("zyh5540", "test");
- }
- });
- session.setDebug(true);
-
- Message msg = new MimeMessage(session);
- msg.setFrom(new InternetAddress("zyh5540@163.com"));
- msg.setSubject("中文主题测试1");
-
- msg.setContent("<span style='color:red;margin:0 auto'>中文测试群发</span>", "text/html;charset=utf-8");
- msg.setRecipients(RecipientType.TO, InternetAddress.parse("zyh5540@163.com,554077931@qq.com"));
-
- Transport.send(msg);
- }
- }
说明:
有些参数设置是比较灵活的,比如邮箱主机地址smtp.163.com、用户名、密码既可以利用props对象进行设置,也可以在Transport对象与服务器连接时进行指定(就像Demo1)。
附:
1.JavaMail开发jar包下载地址:http://download.csdn.net/download/zyh5540/6900667
2.参考代码下载地址:http://download.csdn.net/download/zyh5540/6907731