Java发送邮件
首先需要添加javax.mail-1.4.5.jar的引用。
然后用下面的main代码就可以了。
package org.lyk.main; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; 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 Main { public static void main(String[] args) throws Exception { try { // 配置发送邮件的环境属性 final Properties props = new Properties(); /* * 可用的属性: mail.store.protocol / mail.transport.protocol / mail.host * / mail.user / mail.from */ // 表示SMTP发送邮件,需要进行身份验证 props.put("mail.smtp.auth", "true"); props.put("mail.smtp.host", "smtp.163.com"); // 发件人的账号 props.put("mail.user", "XXXX@163.com"); // 访问SMTP服务时需要提供的密码 props.put("mail.password", "XXXX"); // 构建授权信息,用于进行SMTP进行身份验证 Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { // 用户名、密码 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; // 使用环境属性和授权信息,创建邮件会话 Session mailSession = Session.getInstance(props, authenticator); // 创建邮件消息 MimeMessage message = new MimeMessage(mailSession); // 设置发件人 InternetAddress form = new InternetAddress(props.getProperty("mail.user")); message.setFrom(form); // 设置收件人 InternetAddress to = new InternetAddress("xxxx@qq.com"); message.setRecipient(RecipientType.TO, to); // 设置抄送 InternetAddress cc = new InternetAddress("xxxx@qq.com"); message.setRecipient(RecipientType.CC, cc); // 设置密送,其他的收件人不能看到密送的邮件地址 // InternetAddress bcc = new InternetAddress("aaaaa@163.com"); // message.setRecipient(RecipientType.CC, bcc); // 设置邮件标题 message.setSubject("测试邮件"); // 设置邮件的内容体 message.setContent("<h1>这是测试邮件. 与其苟延残喘,不如从容燃烧~~~<br /> This is used for testing purpose</h1>", "text/html;charset=UTF-8"); // 发送邮件 Transport.send(message); } catch (Exception e) { e.printStackTrace(); } System.out.println("///~ Main done"); } }