|
| |
2002/02/03 田中宏和 |
| LastUpdate
2002/10/29 |
|
 |
JavaMail(SMTP)編 |
 |
|
| ◆SMTPとは? |
| SMTPはSimple Mail Transfer Protocolの略です。メールを送信するときに使われるプロトコルです。下のJavaMailのAPIを使えばこのプロトコルを知らなくてもメールを簡単に送れます。 |
| ◆JavaMailとは? |
| JavaMailとはJavaのプログラムから、メールの送受信を行うためのAPIです。JavaMailのAPIを使用してJavaでメールを送受信するプログラムを作成することができます。 |
| ◆ここでの環境 |
| OS |
Windows 2000 |
| J2SE SDK |
1.4.0 |
|
|
|
| ◆メール送信に使用するライブラリ |
| JavaMail |
バージョン1.3 |
| JAF(JavaBeans
Activation Framework) |
バージョン1.0.2 |
|
| ◆Java実行環境の構築 |
| アプリケーション編を参考にしてJava実行環境を構築してください。 |
| ◆JavaMailのライブラリをCLASSPATHに設定 |
| ■mail.jarをCLASSPATHに設定 |
| まずJavaMailをダウンロードします。 |
| ダウンロード → JavaMail |
| ダウンロードしたファイルを解凍してください。解凍したフォルダに入っているmail.jarをCLASSPATHに設定します。 |
| ■activation.jarをCLASSPATHに設定 |
| JavaMailのライブラリで使用するJAF(JavaBeans Activation Framework)もダウンロードしてCLASSPATHに設定します。 |
| ダウンロード → JAF |
| ダウンロードしたファイルを解凍したフォルダに入っているactivation.jarをCLASSPATHに設定してください。 |
| |
| メールを送信してみよう! |
| メールを送信して、それをメールクライアントで受信して「Hello World」と表示してみたいと思います。 |
| ◆Javaソースコード |
| HelloWorldJavaMail.java(ここからダウンロード) |
import java.util.Properties;
import java.util.Date;
import javax.mail.Session;
import javax.mail.Message;
import javax.mail.Transport;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.InternetAddress;
public class HelloWorldJavaMail {
public static void main(String[] args) {
try {
Properties props = System.getProperties();
// SMTPサーバーのアドレスを指定
props.put("mail.smtp.host","xxx.xxx.xxx.xxx");
Session session=Session.getDefaultInstance(props,null);
MimeMessage mimeMessage=new MimeMessage(session);
// 送信元メールアドレスと送信者名を指定
mimeMessage.setFrom(new InternetAddress("xx@xx.co.jp","田中 宏和","iso-2022-jp"));
// 送信先メールアドレスを指定
mimeMessage.setRecipients(Message.RecipientType.TO,"xx@xx.co.jp");
// メールのタイトルを指定
mimeMessage.setSubject("Hello World JavaMail","iso-2022-jp");
// メールの内容を指定
mimeMessage.setText("<h1>Hello World JavaMail</h1>","iso-2022-jp");
// メールの形式を指定
mimeMessage.setHeader("Content-Type","text/html");
// 送信日付を指定
mimeMessage.setSentDate(new Date());
// 送信します
Transport.send(mimeMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
} |
|
|
(注意)
「SMTPサーバーのアドレス」、「送信元メールアドレス」、「送信者」、「送信先メールアドレス」は環境に合わせて設定していください。 |
|
| ◆コンパイル |
| コマンドプロンプト |
| C:\JavaHello\javamail>javac
HelloWorldJavaMail.java
C:\JavaHello\javamail>
|
|
| ◆メールの送信 |
| コンパイルが成功しましたら、さっそくメールを送信してみましょう! |
| コマンドプロンプト |
C:\JavaHello\JavaMail>java
HelloWorldJavaMail
C:\JavaHello\JavaMail> |
|
| おおおお!!どうやらうまく動いたみたいです。さっそく、メールクライアントでメールを受信して確認してみましょう。 |
 |
| 表示されましたね! |
| |
| ファイルを添付してメールを送信してみよう! |
| 次にファイルを添付してメールを送信してみたいと思います。 |
| ◆Javaソースコード |
| HelloWorldSendFile.java(ここからダウンロード) |
import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
public class HelloWorldSendFile {
public static void main(String[] args) {
try {
Properties props = System.getProperties();
// SMTPサーバーのアドレスを指定
props.put("mail.smtp.host", "xxx.xxx.xxx.xxx");
Session session = Session.getDefaultInstance(props, null);
MimeMessage mimeMessage = new MimeMessage(session);
// 送信元メールアドレスと送信者名を指定
mimeMessage.setFrom(new InternetAddress("xx@xx.co.jp", "田中 宏和","iso-2022-jp"));
// 送信先メールアドレスを指定
mimeMessage.setRecipients(Message.RecipientType.TO, "xx@xx.co.jp");
// メールのタイトルを指定
mimeMessage.setSubject("SendMailでファイル添付!" , "iso-2022-jp");
/** 1つ目のボディパートを作成 **/
MimeBodyPart mbp1 = new MimeBodyPart();
// メールの内容を指定
mbp1.setText("SendMailでファイルを添付します。" , "iso-2022-jp");
/** 2つ目のボディパートを作成 **/
MimeBodyPart mbp2 = new MimeBodyPart();
// 添付するファイル名を指定
FileDataSource fds = new FileDataSource("helloworld.txt");
mbp2.setDataHandler(new DataHandler(fds));
mbp2.setFileName(MimeUtility.encodeWord(fds.getName()));
// 複数のボディを格納するマルチパートオブジェクトを生成
Multipart mp = new MimeMultipart();
// 1つ目のボディパートを追加
mp.addBodyPart(mbp1);
// 2つ目のボディパートを追加
mp.addBodyPart(mbp2);
// マルチパートオブジェクトをメッセージに設定
mimeMessage.setContent(mp);
// 送信日付を指定
mimeMessage.setSentDate(new Date());
// 送信します
Transport.send(mimeMessage);
} catch (Exception e) {
e.printStackTrace();
}
}
} |
|
|
(注意)
「SMTPサーバーのアドレス」、「送信元メールアドレス」、「送信者」、「送信先メールアドレス」、「添付ファイル」は環境に合わせて設定していください。 |
| ◆添付ファイルの用意 |
| ソースファイルと同じ場所に添付ファイルを用意してください。ここでは「helloworld.txt」というファイルを用意しました。 |
| |
| ◆メールの送信 |
| メールを送信してみましょう。 |
| コマンドプロンプト |
| C:\>cd C:\JavaHello\javamail
C:\JavaHello\javamail>javac
HelloWorldSendFile.java
C:\JavaHello\javamail>java
HelloWorldSendFile
C:\JavaHello\javamail> |
|
| おおお!無事おくれたようです。メールクライアントで受信してみてみましょう! |
| ◆メールの受信と確認 |
 |
| おおおお!ファイルが添付されていますね! |
| |
■関連 JavaMail(POP)編 |
■書籍 Java関連の書籍 |
|
| |
|
| |
| ツールの部屋
- Java関連の書籍 - デザインパターン - 情報交換掲示板
- HOME |