package mail;
/**
* Title:
* Description:
* Copyright:Copyright (c) 2001
* Company:
* @author
* @version 1.0
*/
import javax.mail.*;
import javax.mail.event.*;
import javax.activation.*;
import java.util.*;
import javax.mail.internet.*;
public class sendMail {
static final int CONTENTTYPE_HTML = 1;
static final int CONTENTTYPE_TEXT = 2;
static final int CONTENTTYPE_BOTH = 3;
private String host;
private String from;
private String to;
private String subject;
private String text;
private String mailer;
private Session sendMailSession;
private Transport transport;
private int ContentType = CONTENTTYPE_HTML;
public sendMail() {
}
public void setHost(String host) {
this.host = host;
}
public String getHost() {
return host;
}
public void setFrom(String from) {
this.from = from;
}
public String getFrom() {
return from;
}
public void setTo(String to) {
this.to = to;
}
public String getTo() {
return to;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getSubject() {
return subject;
}
public void setText(String text) {
this.text = text;
}
public String getText() {
return text;
}
public void setMailer(String mailer) {
this.mailer = mailer;
}
public String getMailer() {
return mailer;
}
public void setContentType(int ContentType) {
this.ContentType = ContentType;
}
public int getContentType() {
return ContentType;
}
public static void main (String args[]) {
sendMail smail = new sendMail();
// Send Mail Generally
smail.host = "online.sh.cn";
smail.from = "[email protected]";
smail.to = "[email protected]";
smail.subject = "注册成功!";
smail.text = "你好, Send Mail 成功!" +
smail.mailer = "Email System By Andrew Hsu";
smail.ContentType = CONTENTTYPE_HTML;
smail.send() ;
// Send Mail By Authorization
smail.host = "smtp.sina.com.cn";
smail.from = "[email protected]";
smail.to = "[email protected]";
smail.subject = "注册成功!";
smail.text = "你好! Send Mail by Auth 成功! "
smail.mailer = "Email System By Andrew Hsu";
smail.ContentType = CONTENTTYPE_TEXT;
smail.sendByAuth("abc","abc"
; //username and password
}
public void send () {
try{
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
Message msg = setEmailContext(props);
// send the thing off
System.out.println("Message have been sent Mail."
;
Transport.send(msg);
}
catch(Exception m)
{
System.out.println(m.toString());
}
}
private Message setEmailContext(Properties props) throws MessagingException
{
sendMailSession = Session.getDefaultInstance(props, null);
Message msg = new MimeMessage(sendMailSession);
msg.setFrom(new InternetAddress(from));
msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
//* subject = new String(subject.getBytes("8859_1"
);
// Adding a subject to the mail
msg.setSubject(subject);
// Adding the X-mailer to the mail (the name of the Mailer)
msg.setHeader("X-Mailer", mailer);
//Creating a multipart that will englobe all the already defined
//bodyparts, this will also define the header of the msg
Multipart multipart = new MimeMultipart("alternative"
;
// Adding both, the text, and the signature
// Adding the date to the mail
switch (ContentType){
case CONTENTTYPE_HTML: {
multipart.addBodyPart(addBody_HTML());
break;
}
case CONTENTTYPE_TEXT: {
multipart.addBodyPart(addBody_TEXT());
break;
}
case CONTENTTYPE_BOTH: {
multipart.addBodyPart(addBody_HTML());
multipart.addBodyPart(addBody_TEXT());
break;
}
}
msg.setSentDate(new Date());
// Adding the mime multi part to the mail
msg.setContent(multipart);
return msg;
}
private MimeBodyPart addBody_HTML() throws MessagingException{
// HTml
MimeBodyPart multipartHTML = new MimeBodyPart();
//
//* text = new String(text.getBytes("8859_1"
);
multipartHTML.setText("" + text + ""
;
// setting the right values for the Header
multipartHTML.setHeader("Content-Type","text/html;charset=\"gb2312\""
;
multipartHTML.setHeader("Content-Transfer-Encoding", "quoted-printable"
;
return multipartHTML;
}
private MimeBodyPart addBody_TEXT() throws MessagingException{
//TEXT
MimeBodyPart multitext = new MimeBodyPart();
// This will add the text to the mime body part
//* texto += "Text plain here";
//* text = new String(text.getBytes("8859_1"
);
multitext.setText(text);
// setting the right values for the Header
multitext.setHeader("Content-Type", "text/plain;charset=\"gb2312\""
;
multitext.setHeader("Content-Transfer-Encoding", "quoted-printable");
// This will return all the fields to be signed
//* ByteArrayOutputStream baos = new ByteArrayOutputStream();
//* multitext.writeTo(baos);
//* System.out.println("->>>>" + baos.toString()+"\n <------");
return multitext;
}
public void sendByAuth (String Username, String Password) {
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth","true");
Message msg = setEmailContext(props);
transport = sendMailSession.getTransport("smtp");
transport.connect(host, Username,Password);
transport.sendMessage(msg, msg.getAllRecipients()); //
System.out.println("Message have been sent Mail by authentication.");
}
catch(Exception m)
{
System.out.println(m.toString());
}
}
}
|