最新消息: 新版网站上线了!!!

通过javax.mail实现发送邮件email

java;toolbar:false">import java.util.Properties; 
import common.util.Email_Autherticatorbean; 
import javax.mail.Authenticator; 
import javax.mail.internet.InternetAddress; 
import org.apache.commons.lang.StringUtils; 
import javax.mail.internet.MimeBodyPart; 
import javax.mail.Multipart; 
import javax.activation.FileDataSource; 
import javax.mail.internet.MimeMultipart; 
import javax.activation.DataHandler; 
import javax.mail.internet.MimeUtility; 
import java.util.Date; 
/** 
* 利用java.mail的邮件发送程序 
*/ 
public class SendMailTest 
{ 
  public static void main(String[] args) 
  { 
    String title = "titleTest";//所发送邮件的标题 
    String from ="sir_znp@163.com";//从那里发送 
    String sendTo[] = {"znp@163.net","sir_znp@163.com"};//发送到那里 
    //邮件的文本内容,可以包含html标记则显示为html页面 
    String content = "mail test!!!!!!<br><a href=#>aaa</a>"; 
    //所包含的附件,及附件的重新命名 
    String fileNames[] = {"F:\\music\\text1.txt,text1.txt","F:\\music\\text2.txt,text2.txt"}; 
    try { 
    //  MailSender mailsender = new MailSender(); 
      sendmail(title, from, sendTo, content, fileNames,"text/html;charset=gb2312"); 
      } catch (Exception ex) { ex.printStackTrace(); } 
  } 
  public static void sendmail(String subject, String from, String[] to, String text, String[] filenames,String mimeType) throws Exception 
  { 
    //ResourceBundle mailProps = ResourceBundle.getBundle("mail");   可以从配置文件读取相应的参数 
    Properties props = new Properties(); 
    String smtp = "smtp.163.com";  //设置发送邮件所用到的smtp 
    String servername = "sir_znp"; 
    String serverpaswd = "123"; 
    javax.mail.Session mailSession; //邮件会话对象 
    javax.mail.internet.MimeMessage mimeMsg; //MIME邮件对象 
    props = java.lang.System.getProperties(); //获得系统属性对象 
    props.put("mail.smtp.host", smtp); //设置SMTP主机 
    props.put("mail.smtp.auth", "true"); //是否到服务器用户名和密码验证 
    //到服务器验证发送的用户名和密码是否正确 
    Email_Autherticatorbean myEmailAuther = new Email_Autherticatorbean(servername, serverpaswd); 
    //设置邮件会话 
    mailSession = javax.mail.Session.getInstance(props, (Authenticator) myEmailAuther);  
    //设置传输协议 
    javax.mail.Transport transport = mailSession.getTransport("smtp"); 
    //设置from、to等信息 
    mimeMsg = new javax.mail.internet.MimeMessage(mailSession); 
    if (!StringUtils.isEmpty(from)) 
       { 
         InternetAddress sentFrom = new InternetAddress(from); 
         mimeMsg.setFrom(sentFrom);  //设置发送人地址 
       } 
    InternetAddress[] sendTo = new InternetAddress[to.length]; 
    for (int i = 0; i < to.length; i++) 
       { 
         System.out.println("发送到:" + to[i]); 
         sendTo[i] = new InternetAddress(to[i]); 
       } 
    mimeMsg.setRecipients(javax.mail.internet.MimeMessage.RecipientType.TO, sendTo); 
    mimeMsg.setSubject(subject, "gb2312"); 
    MimeBodyPart messageBodyPart1 = new MimeBodyPart(); 
    //messageBodyPart.setText(UnicodeToChinese(text)); 
    messageBodyPart1.setContent(text, mimeType); 
    Multipart multipart = new MimeMultipart();//附件传输格式 
    multipart.addBodyPart(messageBodyPart1); 
    for (int i = 0; i < filenames.length; i++) { 
      MimeBodyPart messageBodyPart2 = new MimeBodyPart(); 
      //选择出每一个附件名 
      String filename = filenames[i].split(",")[0]; 
      System.out.println("附件名:" + filename); 
      String displayname = filenames[i].split(",")[1]; 
      //得到数据源 
      FileDataSource fds = new FileDataSource(filename); 
      //得到附件本身并至入BodyPart 
      messageBodyPart2.setDataHandler(new DataHandler(fds)); 
      //得到文件名同样至入BodyPart 
      //messageBodyPart2.setFileName(displayname); 
      // messageBodyPart2.setFileName(fds.getName()); 
      messageBodyPart2.setFileName(MimeUtility.encodeText(displayname)); 
      multipart.addBodyPart(messageBodyPart2); 
    } 
    mimeMsg.setContent(multipart); 
    //设置信件头的发送日期 
    mimeMsg.setSentDate(new Date()); 
    mimeMsg.saveChanges(); 
    //发送邮件 
    transport.send(mimeMsg); 
    transport.close(); 
  } 
}  
验证类 
package common.util; 
import javax.mail.Authenticator; 
import javax.mail.PasswordAuthentication; 
public class Email_Autherticatorbean  extends Authenticator 
{ 
private String m_username = null; 
private String m_userpass = null; 
public void setUsername(String username) 
{ 
m_username = username; 
} 
public void setUserpass(String userpass) 
{ 
m_userpass = userpass; 
} 
public Email_Autherticatorbean(String username, String userpass) 
{ 
   super(); 
   setUsername(username); 
   setUserpass(userpass); 
} 
public PasswordAuthentication getPasswordAuthentication() 
{ 
  return new PasswordAuthentication(m_username,m_userpass); 
} 
}


转载请注明:谷谷点程序 » 通过javax.mail实现发送邮件email