java对邮件的操作需要用到 javax.mail的jar包,我用的1.4.7的版本
对邮箱的要求呢,就是要设置邮箱的
POP3/SMTP/IMAP 把这些服务打上√就ok了。
这三个协议什么区别呢?
可以参考这里http://edm.ishang.net/faq/detail/the-imap-protocol.html
然后看下java中的写法
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Part;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.sun.mail.imap.IMAPFolder;
import com.sun.mail.imap.IMAPStore;
public class EmailUtility {
/**
* 发送邮件
*
* @return 成功返回true,失败返回false
*/
static Logger logger = LogManager.getLogger(EmailUtility.class.getName());
public static boolean sendMail(String destAddress, String subject,
String content) {
return sendMail(destAddress, subject, content, new ArrayList<String>());
}
public static boolean sendMail(String destAddress, String subject,
String content, String attachment) {
List<String> attachments = new ArrayList<String>();
attachments.add(attachment);
return sendMail(destAddress, subject, content, attachments);
}
public static boolean sendMail(String destAddress, String subject,
String content, List<String> attachments) {
EmailUtility.MailInfo mail = new EmailUtility.MailInfo();
mail.setTo(destAd