/**
*
*/
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)));
}