这是一个发送邮件的简单例子,可以上传附件
SimpleMail类:
package com.zsy.sun; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.Message; import javax.mail.Multipart; import javax.mail.Part; 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; /** * 通过JavaMail发送一封简单的邮件,以及增加附件连接 * @author zsy * @date 2015年1月19日 下午3:41:48 */ public class SimpleMail { //主机 private String host = ""; private String user = ""; private String password = ""; private static Properties props = new Properties(); public String attachmentPath = "C:/Users/Administrator/Desktop/活动1.png"; public static void main(String[] args) { SimpleMail sm = new SimpleMail(); sm.setHost("smtp.163.com"); // 指定要使用的邮件服务器 sm.setAccount("[email protected]", "**********"); // 指定帐号和密码 sm.send("[email protected]", "[email protected]", "标题", "HelloWold!"); } public void setHost(String host) { this.host = host; } public void setAccount(String user, String password) { this.user = user; this.password = password; } /** * * @param from 发件人地址 * @param to 收件人地址 * @param subject 邮件主题 * @param content 邮件内容 */ public void send(String from, String to, String subject, String content) { props.put("mail.smtp.host", "smtp.163.com"); props.put("mail.smtp.auth", true); try { //提供配置以及初始化JavaMail,不与邮件服务器交互 Session mailSession = Session.getDefaultInstance(props); //创建需要传递的消息 Message message = new MimeMessage(mailSession); message.setFrom(new InternetAddress(from)); // 发件人 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 收件人 message.setSubject(subject); // 邮件主题 //message.setText(content); 邮件内容 /* * 附件上传 */ MimeBodyPart mbp1 = new MimeBodyPart(); FileDataSource fds2 = new FileDataSource(attachmentPath); DataHandler dh2 = new DataHandler(fds2); mbp1.setDataHandler(dh2); mbp1.setFileName(MimeUtility.encodeText(fds2.getName())); MimeBodyPart mbp2 = new MimeBodyPart(); mbp2.setContent(content.toString(), "text/html;charset=gb2312"); //增加邮件内容 Multipart mp = new MimeMultipart(); mp.addBodyPart(mbp1); mp.addBodyPart(mbp2); message.setContent(mp); message.saveChanges(); /* * Session根据协议类型(stmp、pop3等)和邮件操作方式(传输和存储)这两个信息就可以定位到一个实例类上。 * 比如,指定stmp协议和transport类型后, * Session就会使用com.sun.mail.smtp.SMTPTransport实现类创建一个Transport实例, * 而指定pop3协议和store类型时,则会使用com.sun.mail.pop3.POP3Store实例类创建一个Store实例。 */ Transport transport = mailSession.getTransport("smtp"); transport.connect(host, user, password); transport.sendMessage(message, message.getAllRecipients()); transport.close(); } catch(Exception e) { System.out.println(e); } } /*private static Properties createProperties(){ InputStream is = null; try { is = SimpleMail.class.getResourceAsStream("/com/zsy/config/mail.properties"); props.load(is); is.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return props; }*/ }
更详细的参数以及相关内容,请参考【zapldy】大大的文章,JavaMail发送和接收邮件:http://blog.csdn.net/zapldy/article/details/3971579