发纯文本的邮件
首先下载commons-email-1.1.jar、mail.jar和activation.jar(它们可以从sun的网站上下载,从下载的javamail和jaf中找到)。
(一)使用javax.mail.*
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
/**
* @description
* @author lyf
* @createTime Jul 28, 2011
* @version 1.1.1.1
*/
public class SendTextMail {
String SMTPHost="";//SMTP服务器
String user="";//登录SMTP服务器的账号
String passwd;
String from="";//发件人邮箱
String to="";//收件人邮箱
String subject="";//邮件标题
String content="";//邮件内容
public SendTextMail()
{
}
/**
* 发送邮件
* @createTime Jul 28, 2011
*/
public void sendMail()
{
Properties props=new Properties();
props.put("mail.smtp.host", SMTPHost);
props.put("mail.smtp.auth", "true");
try {
SmtpAuth auth=new SmtpAuth();
auth.setAccount(user, passwd);
//create a Session
Session mailSession=Session.getDefaultInstance(props,auth);
mailSession.setDebug(true);
//create a Message Object
Message message=new MimeMessage(mailSession);
//sender
message.setFrom(new InternetAddress(from));
//getter
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
//subject
message.setSubject(subject);
//set the content
message.setText(content);
//send time
message.setSentDate(new Date());
//priority 1:urgency 2:general 3:slow
message.setHeader("X-Priority", "1");
message.saveChanges();
//create a Transport Object
Transport transport=mailSession.getTransport("smtp");
//connect to SMTP Server
transport.connect(SMTPHost, user, passwd);
//sendMail
transport.sendMessage(message, message.getAllRecipients());
} catch (Exception e) {
e.printStackTrace();
}
}
static class SmtpAuth extends Authenticator
{
String user,passwd;
//setting the user information
void setAccount(String user,String passwd)
{
this.user=user;
this.passwd=passwd;
}
protected PasswordAuthentication getPasswordAuthentication()
{
return (new PasswordAuthentication(user,passwd));
}
}
/**
* @return the sMTPHost
*/
public String getSMTPHost() {
return SMTPHost;
}
/**
* @param host the sMTPHost to set
*/
public void setSMTPHost(String host) {
SMTPHost = host;
}
/**
* @return the user
*/
public String getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(String user) {
this.user = user;
}
/**
* @return the from
*/
public String getFrom() {
return from;
}
/**
* @param from the from to set
*/
public void setFrom(String from) {
this.from = from;
}
/**
* @return the to
*/
public String getTo() {
return to;
}
/**
* @param to the to to set
*/
public void setTo(String to) {
this.to = to;
}
/**
* @return the subject
*/
public String getSubject() {
return subject;
}
/**
* @param subject the subject to set
*/
public void setSubject(String subject) {
try {
subject=new String(subject.getBytes("ISO8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.subject = subject;
}
/**
* @return the content
*/
public String getContent() {
return content;
}
/**
* @param content the content to set
*/
public void setContent(String content) {
try {
content=new String(content.getBytes("ISO8859-1"),"UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.content = content;
}
/**
* @return the passwd
*/
public String getPasswd() {
return passwd;
}
/**
* @param passwd the passwd to set
*/
public void setPasswd(String passwd) {
this.passwd = passwd;
}
}
(二)使用org.apache.commons.mail.*(此方法比方法一简单很多)
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class Send
{
private String SMTPHost="";//SMTP服务器
private String user="";//登录SMTP服务器的账号
private String passwd;
private String from="";//发件人邮箱
private String to="";//收件人邮箱
private String subject="";//邮件标题
private String content="";//邮件内容
public Send(String host, String user, String passwd,String to, String subject, String content) {
SMTPHost = host;
this.user = user;
this.passwd = passwd;
this.from = user;
this.to = to;
this.subject = subject;
this.content = content;
}
public static void main(String[] args)
{
Send send=new Send("smtp.163.com","****@163.com","******","**email_address**","","");
send.setSubject("注册成功!!!");
send.setContent("您好!!!您的注册已通过审核请注意查看!!!");
send.send();
}
public void send()
{
SimpleEmail email = new SimpleEmail();
email.setTLS(true);
email.setHostName(this.SMTPHost);
email.setAuthentication(this.user, this.passwd);
try
{
//to
email.addTo(this.to);
//from
email.setFrom(this.from);
//subject
email.setSubject(this.subject); //标题
//setting Charset
email.setCharset("UTF-8");
//content
email.setMsg(this.content);
//send
email.send();
System.out.println("发送完毕");
} catch (EmailException e) {
e.printStackTrace();
}
}
/**
* @return the sMTPHost
*/
public String getSMTPHost() {
return SMTPHost;
}
/**
* @param host the sMTPHost to set
*/
public void setSMTPHost(String host) {
SMTPHost = host;
}
/**
* @return the user
*/
public String getUser() {
return user;
}
/**
* @param user the user to set
*/
public void setUser(String user) {
this.user = user;
}
/**
* @return the passwd
*/
public String getPasswd() {
return passwd;
}
/**
* @param passwd the passwd to set
*/
public void setPasswd(String passwd) {
this.passwd = passwd;
}
/**
* @return the from
*/
public String getFrom() {
return from;
}
/**
* @param from the from to set
*/
public void setFrom(String from) {
this.from = from;
}
/**
* @return the to
*/
public String getTo() {
return to;
}
/**
* @param to the to to set
*/
public void setTo(String to) {
this.to = to;
}
/**
* @return the subject
*/
public String getSubject() {
return subject;
}
/**
* @param subject the subject to set
*/
public void setSubject(String subject) {
this.subject = subject;
}
/**
* @return the content
*/
public String getContent() {
return content;
}
/**
* @param content the content to set
*/
public void setContent(String content) {
this.content = content;
}
}
另外还有发送html的邮件和包含附件的邮件,在此只谈一下发纯文本的邮件
946

被折叠的 条评论
为什么被折叠?



