六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 51|回复: 0

javamail的smtp方式发送邮件实例

[复制链接]

升级  53.33%

34

主题

34

主题

34

主题

秀才

Rank: 2

积分
130
 楼主| 发表于 2013-2-3 10:26:33 | 显示全部楼层 |阅读模式
<div class="iteye-blog-content-contain" style="font-size: 14px;">

  • 本实例为javamail发送smtp邮件实例和常见问题解决

  • package 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 Test  
  • {  
  •     // 邮箱服务器  
  •     private String host = "smtp.163.com";  
  •     // 这个是你的邮箱用户名   用户名一般为xxx@163.com中的xxx 但当确认无误时依然是认证错误可以修改为xxx@163.com全名测试
  •     private String username = "******";  
  •     // 你的邮箱密码  
  •     private String password = "******";  
  •       
  •     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 = "zdw@live.cn";  
  •   
  •     private String mail_from = "*****@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 Test()  
  •     {  
  •     }  
  •   
  •     /** *//** 
  •      * 此段代码用来发送普通电子邮件 
  •      */  
  •     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)  
  •     {  
  •         Test sendmail = new Test();  
  •         try  
  •         {  
  •             sendmail.send();  
  •         } catch (Exception ex)  
  •         {  
  •         }  
  •     }  
  •   

常见错误
错误一:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
解决方法:到D:\MyEclipse 6.5

\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806

\data\libraryset\EE_5目录下找到javaee.jar删除其中到mail文件夹。

错误二:
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream
解决方法:
下载mail.jar和activation.jar文件加入到工程中。

下载地址:http://lym6520.iteye.com/blog/655373
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表