浪迹天涯
web报表设计器....
posts - 61,comments - 71,trackbacks - 0

package com.infoer.util;


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 sendmail {
 private String host = "smtp.163.com";

 private String username = "myshiyh";

 private String password = "123456";

 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 = "myshiyh@126.com";

 private String mail_from = "myshiyh@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 sendmail() {
 }

 /**
  * 此段代码用来发送普通电子邮件
  */
 public void send() throws SendMailException {
  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("Hello", "text/plain"); // 设置邮件格式
   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 SendMailException(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) {
  sendmail sendmail = new sendmail();
   try {
   sendmail.send();       
   }
   catch (Exception  ex) {
   }
 }

}

posted on 2007-04-05 13:43 JJCEA 阅读(606) 评论(3)  编辑  收藏 所属分类: java日记

FeedBack:
# re: javamail发送普通电子邮件[未登录]
2009-03-17 15:11 | java菜鸟
楼主,我输入你上面的代码出现下面的错误,可否帮忙解决下
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
at javax.mail.Session.loadProvidersFromStream  回复  更多评论
  
# re: javamail发送普通电子邮件[未登录]
2011-02-21 16:16 | 浪迹天涯
填写申请用户帐号  回复  更多评论
  
# re: javamail发送普通电子邮件[未登录]
2011-02-21 16:16 | 浪迹天涯
麻烦
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: