天天看點

JavaMail Case

/**

 *

 */

package com.javamail.net;

import java.io.File;

import java.io.UnsupportedEncodingException;

import java.net.MalformedURLException;

import java.net.URL;

import java.util.ArrayList;

import java.util.Date;

import java.util.Properties;

import com.javamail.net.StringHelper;

import javax.activation.DataHandler;

import javax.activation.FileDataSource;

import javax.mail.Address;

import javax.mail.MessagingException;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.AddressException;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeBodyPart;

import javax.mail.internet.MimeMessage;

import javax.mail.internet.MimeMultipart;

import javax.mail.internet.MimeUtility;

public class mailtest {

 final public static int TO = 0;

 final public static int CC = 1;

 final public static int BCC = 2;

 * @param args

 * @throws MessagingException

 public static void main(String args[]) throws MessagingException {

  mailtest mail = new mailtest();

  Address[] ar = new Address[2];

  for (int i = 0; i < args.length; i++) {

   ar[i] = new InternetAddress(args[i]);

  }

  String address = InternetAddress.toString(ar);

  MyAuthenticator myauth = new MyAuthenticator("[email][email protected][/email]",

    "dreamcast");

  mail.setAddress(address, mailtest.TO);

  mail.setFromAddress("[email][email protected][/email]");

  mail.setSMTPHost("smtp.sina.com", "willmore2007", "dreamcast");

  mail.setSubject("11111");

  mail.setHtmlBody("hahahahahaha");

  mail.sendBatch(myauth);

 }

 private String mailSMTPHost = null;

 private String mailUser = null;

 private String mailPassword = null;

 private String mailFromAddress = null;

 private String mailSubject = "";

 private Address[] mailTOAddress = null;

 private Address[] mailCCAddress = null;

 private Address[] mailBCCAddress = null;

 private MimeMultipart mailBody = null;

 public mailtest() {

  mailBody = new MimeMultipart();

 public void sendBatch(MyAuthenticator myauth) throws MessagingException {

  Properties properties = new Properties();

  Session session = null;

  // Setup mail server

  properties.put("mail.smtp.host", mailSMTPHost);

  // Get session

  properties.put("mail.smtp.auth", "true");

  if(myauth ==null)

  session = Session.getDefaultInstance(properties,null);

  else

  session = Session.getInstance(properties, myauth);

  session.setDebug(true);

  MimeMessage mimemessage = new MimeMessage(session);

  mimemessage.setFrom(new InternetAddress(this.mailFromAddress));

  if (mailTOAddress != null) {

   mimemessage.addRecipients(javax.mail.Message.RecipientType.TO,

     this.mailTOAddress);

  if (mailCCAddress != null) {

   mimemessage.addRecipients(javax.mail.Message.RecipientType.CC,

     this.mailCCAddress);

  if (mailBCCAddress != null) {

   mimemessage.addRecipients(javax.mail.Message.RecipientType.BCC,

     this.mailBCCAddress);

  mimemessage.setSubject(this.mailSubject);

  mimemessage.setContent(this.mailBody);

  mimemessage.setSentDate(new Date());

  Transport transport = session.getTransport("smtp");

  transport.connect(this.mailSMTPHost, this.mailUser, this.mailPassword);

  Transport.send(mimemessage);

  System.out.println("has been sent the mail to:");

   for (int i = 0; i < mailTOAddress.length; i++) {

    System.out.println(mailTOAddress[i]);

   }

    System.out.println(mailCCAddress[i]);

    System.out.println(mailBCCAddress[i]);

 public void setAddress(String strAddress, int iAddressType)

   throws AddressException {

  switch (iAddressType) {

  case mailtest.TO: {

   ArrayList alAddress = StringHelper.spilt(strAddress, ",");

   mailTOAddress = new Address[alAddress.size()];

   for (int i = 0; i < alAddress.size(); i++) {

    mailTOAddress[i] = new InternetAddress((String) alAddress

      .get(i));

   break;

  case mailtest.CC: {

   mailCCAddress = new Address[alAddress.size()];

    mailCCAddress[i] = new InternetAddress((String) alAddress

  case mailtest.BCC: {

   mailBCCAddress = new Address[alAddress.size()];

    mailBCCAddress[i] = new InternetAddress((String) alAddress

 public void setFileAttachment(String strFileAttachment)

   throws MessagingException, UnsupportedEncodingException {

  File path = new File(strFileAttachment);

  if (!path.exists() || path.isDirectory()) {

   return;

  String strFileName = path.getName();

  MimeBodyPart mimebodypart = new MimeBodyPart();

  mimebodypart.setDataHandler(new DataHandler(new FileDataSource(

    strFileAttachment)));

   mimebodypart.setFileName(MimeUtility.encodeText(strFileName));

  mailBody.addBodyPart(mimebodypart);

 public void setFromAddress(String strFromAddress) {

  this.mailFromAddress = strFromAddress;

 public void setHtmlBody(String strHtmlBody) throws MessagingException {

  mimebodypart.setDataHandler(new DataHandler(strHtmlBody,

    "text/html;charset=GBK"));

 public void setSMTPHost(String strSMTPHost, String strUser,

   String strPassword) {

  this.mailSMTPHost = strSMTPHost;

  this.mailUser = strUser;

  this.mailPassword = strPassword;

 public void setSubject(String strSubject) {

  this.mailSubject = strSubject;

 public void setTextBody(String strTextBody) throws MessagingException {

  mimebodypart.setText(strTextBody, "GBK");

 public void setURLAttachment(String strURLAttachment)

   throws MessagingException, MalformedURLException {

  mimebodypart.setDataHandler(new DataHandler(new URL(strURLAttachment)));

}

繼續閱讀