码迷,mamicode.com
首页 > 编程语言 > 详细

javax.mail发送邮件

时间:2015-06-16 19:33:12      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:javax.mail

废话不多说直接上代码

package cn.itcast.shop.utils;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
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;
/**
 * 邮件发送工具类
 * @author yuanhai
 *
 */
public class MailUitls {
 /**
  * 发送邮件的方法
  * @param to :收件人
  * @param code :激活码
  */
 public static void sendMail(String to,String code){
  /**
   * 1.获得一个Session对象.
   * 2.创建一个代表邮件的对象Message.
   * 3.发送邮件Transport
   */
  // 1.获得连接对象
  
  // 配置发送邮件的环境属性
  
         /*
         * 可用的属性: mail.store.protocol / mail.transport.protocol / mail.host /
         * mail.user / mail.from
         */
     final Properties props = new Properties();  
  // 表示SMTP发送邮件,需要进行身份验证
     props.put("mail.smtp.auth", "true");        
     props.put("mail.smtp.host", "smtp.126.com");
     // 发件人的账号
        props.put("mail.user", "jethai@126.com");
        // 访问SMTP服务时需要提供的密码
        props.put("mail.password", "xxxxxxx");
        
        // 使用环境属性和授权信息,创建邮件会话
        // 构建授权信息,用于进行SMTP进行身份验证
  
  Session session = Session.getInstance(props, new Authenticator() {
   @Override
   protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication(props.getProperty("mail.user"),props.getProperty("mail.password"));
   }
   
  });
  // 2.创建邮件对象:
  Message message = new MimeMessage(session);
  // 设置发件人:
  try {
   message.setFrom(new InternetAddress("jethai@126.com"));
   // 设置收件人:
   message.addRecipient(RecipientType.TO, new InternetAddress(to));
   // 抄送 CC   密送BCC RecipientType.CC 其他的收件人不能看到密送的邮件地址
   // 设置标题
   message.setSubject("来自购物天堂传智商城官方激活邮件");
   // 设置邮件正文:
   message.setContent("<h1>购物天堂传智商城官方激活邮件!点下面链接完成激活操作!</h1><h3><a href=‘http://localhost:8080/shop/user_active.action?code="+code+"‘>http://192.168.36.103:8080/shop/user_active.action?code="+code+"</a></h3>", "text/html;charset=UTF-8");
   // 3.发送邮件:
   Transport.send(message);
  } catch (AddressException e) {
   e.printStackTrace();
  } catch (MessagingException e) {
   e.printStackTrace();
  }
  
 }
 
 public static void main(String[] args) {
  sendMail("jethai@126.com","11111111111111");
 }
}


props.put("mail.password", "xxxxxxx")中的xxxxxxx表示发送邮箱邮件密码。


错误: java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream


原因:javax.mail和javax.activation这两个包已经在javaEE5当中属于基础包了,就是JDK中自带了已经,但是里面的方法与现在外面的mail.jar和activation.jar有一些出入


解决方法:用Java EE 6 Libraries替换javaEE5




参考博文:


http://www.cnblogs.com/xiandedanteng/p/4132201.html


http://blog.163.com/java_star/blog/static/11771480520136511023957/

  



本文出自 “一无所有-天行者” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1662315

javax.mail发送邮件

标签:javax.mail

原文地址:http://tianxingzhe.blog.51cto.com/3390077/1662315

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!