JavaMail发送邮件实例

1.使用JavaMail发邮件需要引入mail.jar和activation.jar两个包
2.遇见的异常可能会有
   (1)java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
   (2)java.lang.NoClassDefFoundError: com/sun/activation/registries/LogSupport
这2个异常都是由于JavaEE版本和JavaMail的版本不一致所造成的.如javaMail1.3以下的如果在javaEE5上就会出现上面的错误,因为javaEE5中包含有javaMail的类但是却不全面,所以造成与本身的JavaMail包冲突。而activation1.0.2与1.1版本也不同,LogSupport在1.0.2中没有。
注:我是把Javaee里面的MAIL.JAR和activation.jar这两个包都删了

package com.bc.mail;  
 
import java.util.Date;  
import java.util.Properties;  
import javax.mail.Address;  
import javax.mail.Authenticator;  
import javax.mail.Message;  
import javax.mail.PasswordAuthentication;  
import javax.mail.Session;  
import javax.mail.Transport;  
import javax.mail.internet.InternetAddress;  
import javax.mail.internet.MimeMessage;  
 
/** *//** 
 * 发送普通邮件,接受普通邮件 发送带有附件的邮件,接收带有附件的邮件 发送html形式的邮件,接受html形式的邮件 发送带有图片的邮件等做了一个总结。 
 */ 
public class MailTest  
{  
    // 邮箱服务器  
    private String host = "smtp.163.com";  
    // 这个是你的邮箱用户名  
    private String username = xxxxxxxxxxxxx@163.com;  
    // 你的邮箱密码  
    private String password = "xxxxxxxxxxx";  
      
    private String mail_head_name = "this is head of this mail";  
 
    private String mail_head_value = "this is head of this mail";  
 
    private String mail_to = xxxxxxxxxxxx@qq.com;  
 
    private String mail_from = xxxxxxxxx@163.com;  
 
    private String mail_subject = "this is the subject of this test mail";  
 
    private String mail_body = "this is the mail_body of this test mail";  
 
    private String personalName = "我的邮件";  
 
    public MailTest()  
    {  
    }  
 
    /** *//** 
     * 此段代码用来发送普通电子邮件 
     */ 
    public void send() throws Exception  
    {  
        try 
        {  
            Properties props = new Properties(); // 获取系统环境  
            Authenticator auth = new Email_Autherticator(); // 进行邮件服务器用户认证  
            props.put("mail.smtp.host", host);  
            props.put("mail.smtp.auth", "true");  
            Session session = Session.getDefaultInstance(props, auth);  
            // 设置session,和邮件服务器进行通讯。  
            MimeMessage message = new MimeMessage(session);  
            // message.setContent("foobar, "application/x-foobar"); // 设置邮件格式  
            message.setSubject(mail_subject); // 设置邮件主题  
            message.setText(mail_body); // 设置邮件正文  
            message.setHeader(mail_head_name, mail_head_value); // 设置邮件标题  
            message.setSentDate(new Date()); // 设置邮件发送日期  
            Address address = new InternetAddress(mail_from, personalName);  
            message.setFrom(address); // 设置邮件发送者的地址  
            Address toAddress = new InternetAddress(mail_to); // 设置邮件接收方的地址  
            message.addRecipient(Message.RecipientType.TO, toAddress);  
            Transport.send(message); // 发送邮件  
            System.out.println("send ok!");  
        } catch (Exception ex)  
        {  
            ex.printStackTrace();  
            throw new Exception(ex.getMessage());  
        }  
    }  
 
    /** *//** 
     * 用来进行服务器对用户的认证 
     */ 
    public class Email_Autherticator extends Authenticator  
    {  
        public Email_Autherticator()  
        {  
            super();  
        }  
 
        public Email_Autherticator(String user, String pwd)  
        {  
            super();  
            username = user;  
            password = pwd;  
        }  
 
        public PasswordAuthentication getPasswordAuthentication()  
        {  
            return new PasswordAuthentication(username, password);  
        }  
    }  
 
    public static void main(String[] args)  
    {  
        MailTest sendmail = new MailTest();  
        try 
        {  
            sendmail.send();  
        } catch (Exception ex)  
        {  
        }  
    }  
 
}

 

本文来自CSDN博客,转载请标明出处:file:///E:/java/code/JavaMail发送邮件实例%20-%20muzixinly的专栏%20-%20CSDN博客.htm

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值