JavaMailでメールを送信(インスタンスを含む)


詳細
JavaMailはSunが発表した電子メールを処理するアプリケーションインタフェースで、最も一般的なメール転送プロトコルの実装方法をプリセットし、簡単な方法で呼び出すことができます.JavaMailはSunがリリースしたアプリケーションインタフェースなので、JDKには含まれていません.Sunの公式サイトからJavaMailクラスのパッケージをダウンロードする必要があります.それ以外にSunのJAF(JavaBeans Activation Framework)が必要です.そうしないとJavaMailは実行できません.
        コアJavaMail APIは、Javax.mail、JavaMail APIのトップクラスパッケージからなる7つのクラスから構成されています.Session、Message、Address、Authenticator、Transport、Store、Folderです.これらのクラスでは、メッセージの送信、メッセージの取得、メッセージの削除、認証、メッセージの返信、メッセージの転送、添付ファイルの管理、HTMLファイルフォーマットに基づくメッセージの処理、メールリストの検索またはフィルタリングなど、多くの一般的な電子メールタスクを完了できます.
       メール送信のソースコードをテストします.

import java.text.DateFormat; 
import java.text.SimpleDateFormat; 
import java.util.Properties; 
import java.util.Date; 
import javax.mail.*; 
import javax.mail.internet.*; 
/* 
*     JavaMail       
*/ 
public class SendMail { 
private String from; 
private String to; 
private String smtpServer; 
private String subject; 
private String content; 
private String username; 
private String password; 

/* 
  *      
  */ 
public void mail(String smtpServer,String from,String to,String username,String password,String subject,String content) { 
  this.smtpServer = smtpServer; 
  this.from = from; 
  this.to = to; 
  this.username = username; 
  this.password = password; 
  this.subject = subject; 
  this.content = content; 
} 

public String getFrom() { 
  return from; 
} 
public void setFrom(String from) { 
  this.from = from; 
} 
public String getTo() { 
  return to; 
} 
public void setTo(String to) { 
  this.to = to; 
} 
public String getSmtpServer() { 
  return smtpServer; 
} 
public void setSmtpServer(String smtpServer) { 
  this.smtpServer = smtpServer; 
} 
public String getSubject() { 
  return subject; 
} 
public void setSubject(String subject) { 
  this.subject = subject; 
} 
public String getContent() { 
  return content; 
} 
public void setContent(String content) { 
  this.content = content; 
} 
public String getUsername() { 
  return username; 
} 
public void setUsername(String username) { 
  this.username = username; 
} 
public String getPassword() { 
  return password; 
} 
public void setPassword(String password) { 
  this.password = password; 
} 

public void send() { 
  Properties props = System.getProperties(); 
  props.put("mail.smtp.host", smtpServer); 
  props.put("mail.smtp.auth", "true");   
  /* 
   * Session:      
   *   Session    getDefaultInstance()             Session   
   */ 
  Session session = Session.getDefaultInstance(props,new PasswordAuthenticator(username, password)); 
  //     
  Message msg = new MimeMessage(session); 
  try { 
   msg.setFrom(new InternetAddress(from)); 
   msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false)); 
   msg.setSubject(subject); 
   msg.setText(content); 
   //        
   msg.setSentDate(new Date()); 
   //       Transport     
   Transport.send(msg); 
  } catch (AddressException e) { 
   e.printStackTrace(); 
  } catch (MessagingException e) { 
   e.printStackTrace(); 
  } 
} 

public static void main(String[] argv) { 
  SendMail sendMail = new SendMail(); 
  //  SMTP         
  sendMail.setSmtpServer("smtp.sina.com"); 
  //         
  sendMail.setFrom("[email=[ft=,2,][email protected]][email protected][/email]"); 
  //         
  sendMail.setTo("[email=[ft=,2,][email protected]][email protected][/email]"); 
  //         
  sendMail.setUsername("[email=[ft=,2,][email protected]][email protected][/email]"); 
  //        (        ) 
  sendMail.setPassword("******"); 
  //      
  sendMail.setSubject("  "); 
  //      
  sendMail.setContent("   JavaMail      !"); 
  sendMail.send(); 
} 
} 
/* 
*       PasswordAuthenticator 
* @param username:     
* @param password:   
*/ 
class PasswordAuthenticator extends Authenticator { 
private String username; 
private String password; 
public PasswordAuthenticator(String username, String password) { 
  this.username = username; 
  this.password = password; 
}//     
protected PasswordAuthentication getPasswordAuthentication() { 
  return new PasswordAuthentication(username, password); 
} 
}