JavaMail包中的类比较多,主要用到的有会话类、地址类、邮件类、邮件发送类、邮件接收类和邮件文件夹类这些常用的类。会话类(Session),主要用来创建邮件对象、实现邮件对象中数据的封装并可指定邮件服务器认证的客户端属性。它表示程序与某一个邮件服务器即将建立通信,在建立的过程可以进行口令认证。地址类(Address),这个地址类主要是表示邮件发送人和邮件接收人的地址,一般主要用的是InternetAddress。邮件类(Message),邮件消息的主要类,它包含了邮件中的所有部分,继承自一个接口Part,一般在使用的过程中直接是利用它的子类MimeMessage邮件发送类(Transport),一般是从一个会话中获取一个邮件发送类的实例,将已经写好的邮件利用SMTP协议发送到指定的邮件服务器,在发送的过程中,首先根据指定口令连接到邮件服务器,再发送邮件。邮件接收类(Store),这个其实就是邮件服务器中的存储库,里面放着所有的邮件文件夹邮件文件夹类(Folder),该文件夹就是消息的具体所在文件夹,默认的邮件均在INBOX文件中。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.AddressException;import javax.mail.internet.InternetAddress;import javax.mail.internet.MimeMessage;public class MailSend { public static void main(String[] args) throws AddressException, MessagingException { Properties props = new Properties(); // 开启debug调试 props.setProperty("mail.debug", "true"); // 发送服务器需要身份验证 props.setProperty("mail.smtp.auth", "true"); // 设置邮件服务器主机名 props.setProperty("mail.host", "smtp.126.com"); // 发送邮件协议名称 props.setProperty("mail.transport.protocol", "smtp"); // 设置环境信息 Session session = Session.getInstance(props); // 创建邮件对象 Message msg = new MimeMessage(session); msg.setSubject("JavaMail测试"); // 设置邮件内容 msg.setText("这是一封由JavaMail发送的邮件!"); // 设置发件人 msg.setFrom(new InternetAddress("you email address")); Transport transport = session.getTransport(); // 连接邮件服务器 transport.connect("account", "pwd"); // 发送邮件 transport.sendMessage(msg, new Address[] {new InternetAddress("send2ocean@foxmail.com")}); // 关闭连接 transport.close(); }}javamail 下载链接http://down.51cto.com/data/810527
接收邮件,要用到
要不getSubject等方法会是null.
import java.io.IOException;import java.util.Date;import java.util.Properties;import javax.mail.Authenticator;import javax.mail.Folder;import javax.mail.Message;import javax.mail.MessagingException;import javax.mail.NoSuchProviderException;import javax.mail.PasswordAuthentication;import javax.mail.Session;import javax.mail.Store;import javax.mail.internet.MimeMessage;import org.apache.commons.mail.util.MimeMessageParser;import com.sun.mail.pop3.POP3Message;public class MailRec { public static void main(String[] args) throws Exception { String protocol = "pop3"; boolean isSSL = true; String host = "pop3.126.com"; int port = 995; Properties props = new Properties(); props.put("mail.pop3.ssl.enable", isSSL); props.put("mail.pop3.host", host); props.put("mail.pop3.port", port); props.setProperty("mail.debug", "false"); props.put("mail.pop3.disabletop", true); 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(); System.out.println( size ); Message[] msgs = folder.getMessages(); for(int i=0;i