首先要加入mail.jar包
import java.io.UnsupportedEncodingException; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Address; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; 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; public class SendMail { /** * 发送邮件 * @param from 发送方地址 * @param frompwd 发送方邮件密码 * @param to 发送的目的地 * @param sub 邮件主题 * @param attr 附件 * @param content 内容 * @throws MessagingException * @throws UnsupportedEncodingException */ public void sendTextMail(String from, String frompwd, String to, String sub, String attr,String content) throws MessagingException, UnsupportedEncodingException { Properties props = new Properties(); props.setProperty("mail.smtp.auth", "true");// 设置访问smtp服务器需要认证 props.setProperty("mail.transport.protocol", "smtp"); // 设置访问服务器的协议 Session session = Session.getDefaultInstance(props); session.setDebug(true); // 打开debug功能 Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); // 设置发件人,163邮箱要求发件人与登录用户必须一致(必填),其它邮箱不了解 // msg.setText(content); // 设置邮件内容 msg.setSubject(sub); // 设置邮件主题 MimeBodyPart mbp = new MimeBodyPart(); // 是否有附件 if (attr != null && attr != "") { FileDataSource fds = new FileDataSource(attr); mbp.setDataHandler(new DataHandler(fds)); mbp.setFileName(MimeUtility.encodeText(fds.getName())); } mbp.setContent(content.toString(), "text/html;charset=gb2312"); // 设置发送内容 Multipart mp = new MimeMultipart(); mp.addBodyPart(mbp); msg.setContent(mp); //发送附件 Transport trans = session.getTransport(); trans.connect("smtp.163.com", 25, from, frompwd); // 连接邮箱smtp服务器,25为默认端口 trans.sendMessage(msg, new Address[] { new InternetAddress(to) }); // 发送邮件 trans.close(); // 关闭连接 } }
这里只能发送163邮件。
本文参考博客:http://www.2cto.com/kf/201402/276546.html