javamail的smtp方式发送邮件实例

  1. 本实例为javamail发送smtp邮件实例和常见问题解决
  2. package mail;  
  3.   
  4. import java.util.Date;  
  5. import java.util.Properties;  
  6. import javax.mail.Address;  
  7. import javax.mail.Authenticator;  
  8. import javax.mail.Message;  
  9. import javax.mail.PasswordAuthentication;  
  10. import javax.mail.Session;  
  11. import javax.mail.Transport;  
  12. import javax.mail.internet.InternetAddress;  
  13. import javax.mail.internet.MimeMessage;  
  14.   
  15. /** *//** 
  16.  * 发送普通邮件,接受普通邮件 发送带有附件的邮件,接收带有附件的邮件 发送html形式的邮件,接受html形式的邮件 发送带有图片的邮件等做了一个总结。 
  17.  */  
  18. public class Test  
  19. {  
  20.     // 邮箱服务器  
  21.     private String host = "smtp.163.com";  
  22.     // 这个是你的邮箱用户名   用户名一般为[email protected]中的xxx 但当确认无误时依然是认证错误可以修改为[email protected]全名测试
  23.     private String username = "******";  
  24.     // 你的邮箱密码  
  25.     private String password = "******";  
  26.       
  27.     private String mail_head_name = "this is head of this mail";  
  28.   
  29.     private String mail_head_value = "this is head of this mail";  
  30.   
  31.     private String mail_to = "[email protected]";  
  32.   
  33.     private String mail_from = "*****@163.com";  
  34.   
  35.     private String mail_subject = "this is the subject of this test mail";  
  36.   
  37.     private String mail_body = "this is the mail_body of this test mail";  
  38.   
  39.     private String personalName = "我的邮件";  
  40.   
  41.     public Test()  
  42.     {  
  43.     }  
  44.   
  45.     /** *//** 
  46.      * 此段代码用来发送普通电子邮件 
  47.      */  
  48.     public void send() throws Exception  
  49.     {  
  50.         try  
  51.         {  
  52.             Properties props = new Properties(); // 获取系统环境  
  53.             Authenticator auth = new Email_Autherticator(); // 进行邮件服务器用户认证  
  54.             props.put("mail.smtp.host", host);  
  55.             props.put("mail.smtp.auth""true");  
  56.             Session session = Session.getDefaultInstance(props, auth);  
  57.             // 设置session,和邮件服务器进行通讯。  
  58.             MimeMessage message = new MimeMessage(session);  
  59.             // message.setContent("foobar, "application/x-foobar"); // 设置邮件格式  
  60.             message.setSubject(mail_subject); // 设置邮件主题  
  61.             message.setText(mail_body); // 设置邮件正文  
  62.             message.setHeader(mail_head_name, mail_head_value); // 设置邮件标题  
  63.             message.setSentDate(new Date()); // 设置邮件发送日期  
  64.             Address address = new InternetAddress(mail_from, personalName);  
  65.             message.setFrom(address); // 设置邮件发送者的地址  
  66.             Address toAddress = new InternetAddress(mail_to); // 设置邮件接收方的地址  
  67.             message.addRecipient(Message.RecipientType.TO, toAddress);  
  68.             Transport.send(message); // 发送邮件  
  69.             System.out.println("send ok!");  
  70.         } catch (Exception ex)  
  71.         {  
  72.             ex.printStackTrace();  
  73.             throw new Exception(ex.getMessage());  
  74.         }  
  75.     }  
  76.   
  77.     /** *//** 
  78.      * 用来进行服务器对用户的认证 
  79.      */  
  80.     public class Email_Autherticator extends Authenticator  
  81.     {  
  82.         public Email_Autherticator()  
  83.         {  
  84.             super();  
  85.         }  
  86.   
  87.         public Email_Autherticator(String user, String pwd)  
  88.         {  
  89.             super();  
  90.             username = user;  
  91.             password = pwd;  
  92.         }  
  93.   
  94.         public PasswordAuthentication getPasswordAuthentication()  
  95.         {  
  96.             return new PasswordAuthentication(username, password);  
  97.         }  
  98.     }  
  99.   
  100.     public static void main(String[] args)  
  101.     {  
  102.         Test sendmail = new Test();  
  103.         try  
  104.         {  
  105.             sendmail.send();  
  106.         } catch (Exception ex)  
  107.         {  
  108.         }  
  109.     }  
  110.   

常见错误

错误一:
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

猜你喜欢

转载自duguyiren3476.iteye.com/blog/1771301
今日推荐