import java.util.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*;public class SimpleMail { public static void receive(String popServer, String popUser , String popPassword) { Store store = null; Folder folder = null; try { // -- Get hold of the default session -- Properties props = System.getProperties(); Session session = Session.getDefaultInstance(props, null); // -- Get hold of a POP3 message store, and connect to it -- store = session.getStore("pop3"); store.connect(popServer, popUser, popPassword); // -- Try to get hold of the default folder -- folder = store.getDefaultFolder(); if (folder == null)throw new Exception("No default folder"); // -- ...and its INBOX -- folder = folder.getFolder("INBOX"); if (folder == null)throw new Exception("No POP3 INBOX"); // -- Open the folder for read only -- folder.open(Folder.READ_ONLY); // -- Get the message wrappers and process them -- Message[] msgs = folder.getMessages(); for (int msgNum = 0; msgNum < msgs.length; msgNum++) { printMessage(msgs[msgNum]); } } catch (Exception ex) { ex.printStackTrace(); } finally { // -- Close down nicely -- try { if (folder != null) folder.close(false); if (store != null) store.close(); } catch (Exception ex2) { ex2.printStackTrace(); } } } public static void printMessage(Message message) { try { // Get the header information String from = ((InternetAddress) message.getFrom()[0]).getPersonal(); if (from == null) from = ((InternetAddress) message.getFrom()[0]) .getAddress(); System.out.println("FROM: " + from); String subject = message.getSubject(); System.out.println("SUBJECT: " + subject); // -- Get the message part (i.e. the message itself) -- Part messagePart = message; Object content = messagePart.getContent(); // -- or its first body part if it is a multipart message -- if (content instanceof Multipart) { messagePart = ((Multipart) content).getBodyPart(0); System.out.println("[ Multipart Message ]"); } // -- Get the content type -- String contentType = messagePart.getContentType(); // -- If the content is plain text, we can print it -- System.out.println("CONTENT:" + contentType); if (contentType.startsWith("text/plain") || contentType.startsWith("text/html")) { InputStream is = messagePart.getInputStream(); BufferedReader reader = new BufferedReader(new InputStreamReader(is)); String thisLine = reader.readLine(); while (thisLine != null) { System.out.println(thisLine); thisLine = reader.readLine(); } } System.out.println("-----------------------------"); } catch (Exception ex) { ex.printStackTrace(); } } public void sendMail(String mf, String mt, String ms, String mc, String m_server, String m_user, String m_pswd) { //mf:发送方;mt:接收方;ms:邮件标题,mc:邮件内容,m_server:MAIL服务器,m_user:用户名,m_pswd,密码; try { Properties props = new Properties(); props.put("mail.smtp.host", m_server); props.put("mail.smtp.auth", "true"); Session newSession = Session.getInstance(props); MimeMessage message = new MimeMessage(newSession); InternetAddress from = new InternetAddress(mf); message.setFrom(from); InternetAddress sto = new InternetAddress(mt); message.setRecipient(Message.RecipientType.TO, sto); message.setRecipient(Message.RecipientType.CC, sto); message.setRecipient(Message.RecipientType.BCC, sto); message.setSubject(ms); message.setSentDate(new Date()); BodyPart mdp = new MimeBodyPart(); mdp.setContent(mc, "text/html;charset=gb2312"); Multipart mm = new MimeMultipart(); mm.addBodyPart(mdp); message.setContent(mm); Transport transport = newSession.getTransport("smtp"); transport.connect(m_server, m_user, m_pswd); transport.sendMessage(message, message.getAllRecipients()); transport.close(); } catch (MessagingException e) { System.out.println(e.toString()); } } public static void main(String[] args) { SimpleMail mail = new SimpleMail(); // mail.sendMail("[email protected]", "[email protected]", "标题", "内容", // "smtp.163.com", "aa_zz_234", "123456"); mail.receive("pop3.163.com","aa_zz_234","123456"); } }
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;public class SimpleMail { public static void receive(String popServer, String popUser
, String popPassword) { Store store = null;
Folder folder = null; try {
// -- Get hold of the default session --
Properties props = System.getProperties();
Session session = Session.getDefaultInstance(props, null); // -- Get hold of a POP3 message store, and connect to it --
store = session.getStore("pop3");
store.connect(popServer, popUser, popPassword); // -- Try to get hold of the default folder --
folder = store.getDefaultFolder();
if (folder == null)throw new Exception("No default folder"); // -- ...and its INBOX --
folder = folder.getFolder("INBOX");
if (folder == null)throw new Exception("No POP3 INBOX"); // -- Open the folder for read only --
folder.open(Folder.READ_ONLY); // -- Get the message wrappers and process them --
Message[] msgs = folder.getMessages();
for (int msgNum = 0; msgNum < msgs.length; msgNum++) {
printMessage(msgs[msgNum]);
} } catch (Exception ex) {
ex.printStackTrace();
} finally {
// -- Close down nicely --
try {
if (folder != null) folder.close(false);
if (store != null) store.close();
} catch (Exception ex2) {
ex2.printStackTrace();
}
}
} public static void printMessage(Message message) {
try {
// Get the header information
String from = ((InternetAddress) message.getFrom()[0]).getPersonal();
if (from == null) from = ((InternetAddress) message.getFrom()[0])
.getAddress();
System.out.println("FROM: " + from); String subject = message.getSubject();
System.out.println("SUBJECT: " + subject); // -- Get the message part (i.e. the message itself) --
Part messagePart = message;
Object content = messagePart.getContent(); // -- or its first body part if it is a multipart message --
if (content instanceof Multipart) {
messagePart = ((Multipart) content).getBodyPart(0);
System.out.println("[ Multipart Message ]");
} // -- Get the content type --
String contentType = messagePart.getContentType(); // -- If the content is plain text, we can print it --
System.out.println("CONTENT:" + contentType); if (contentType.startsWith("text/plain")
|| contentType.startsWith("text/html")) {
InputStream is = messagePart.getInputStream(); BufferedReader reader
= new BufferedReader(new InputStreamReader(is));
String thisLine = reader.readLine(); while (thisLine != null) {
System.out.println(thisLine);
thisLine = reader.readLine();
}
} System.out.println("-----------------------------");
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void sendMail(String mf, String mt, String ms, String mc,
String m_server, String m_user, String m_pswd) {
//mf:发送方;mt:接收方;ms:邮件标题,mc:邮件内容,m_server:MAIL服务器,m_user:用户名,m_pswd,密码;
try { Properties props = new Properties();
props.put("mail.smtp.host", m_server);
props.put("mail.smtp.auth", "true");
Session newSession = Session.getInstance(props); MimeMessage message = new MimeMessage(newSession); InternetAddress from = new InternetAddress(mf);
message.setFrom(from);
InternetAddress sto = new InternetAddress(mt);
message.setRecipient(Message.RecipientType.TO, sto);
message.setRecipient(Message.RecipientType.CC, sto);
message.setRecipient(Message.RecipientType.BCC, sto);
message.setSubject(ms);
message.setSentDate(new Date()); BodyPart mdp = new MimeBodyPart();
mdp.setContent(mc, "text/html;charset=gb2312");
Multipart mm = new MimeMultipart();
mm.addBodyPart(mdp);
message.setContent(mm);
Transport transport = newSession.getTransport("smtp");
transport.connect(m_server, m_user, m_pswd);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (MessagingException e) {
System.out.println(e.toString());
}
} public static void main(String[] args) {
SimpleMail mail = new SimpleMail();
// mail.sendMail("[email protected]", "[email protected]", "标题", "内容",
// "smtp.163.com", "aa_zz_234", "123456");
mail.receive("pop3.163.com","aa_zz_234","123456");
}
}
因为现在几乎所有的邮件服务器都有验证程序,为了防止垃圾邮件!
所以在发送过程中需要确认发送方的邮箱的用户名和密码!这个程序的最后有个main测试函数,里面有几个东西楼主是需要该的!
比如[email protected] ===========改成你的邮箱
aa_zz_234 ===========你的邮箱登录名
123456 ===========你的邮箱密码