通过javamail发送中文email实例(包括smtp验证)!

[复制链接]
查看11 | 回复1 | 2005-10-30 17:05:33 | 显示全部楼层 |阅读模式
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&quot

; //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.&quot

;
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&quot

);
// 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&quot

;
// 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&quot

);
multipartHTML.setText("" + text + "&quot

;
// setting the right values for the Header
multipartHTML.setHeader("Content-Type","text/html;charset=\"gb2312\"&quot

;
multipartHTML.setHeader("Content-Transfer-Encoding", "quoted-printable&quot

;
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&quot

);
multitext.setText(text);
// setting the right values for the Header
multitext.setHeader("Content-Type", "text/plain;charset=\"gb2312\"&quot

;
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());
}
}
}
回复

使用道具 举报

千问 | 2005-10-30 17:05:33 | 显示全部楼层
谢谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行