tkxmailによるメール送信の方法(1)
簡単なメール送信

tkxmailは、ファイル添付メールやHTMLメールなども送信できる多機能なライブラリです。また、同一メールの一斉送信やCC、BCCにも対応しています。

通信方式は、一般的なSMTP-AUTHの他、旧来からあるPOP-Before-SMTPも選択できます。もちろん、JavaSEでもEEでも使用できます。使い方はとても簡単で、数行のコードを書くだけです。以下では、例を示しながら、簡単な使い方を解説します。

  • ダウンロード
  • 普通のメールを送信する
  • 一斉送信とCC、BCCの指定
  • ファイル添付メールを送信する
  • HTMLメールを送信する
  • HTMLメールにファイルを添付して送信する
  • JavaEEでの使い方

ダウンロード

tkxmailは、Javamailを利用したメール送信ライブラリです。したがって、JavaSEで使う場合は、javamailライブラリが必要です。JavaEEで使う場合は、最初からJavamailが含まれているので、ライブラリを用意する必要はありません。

また、添付ファイルの日本語ファイル名の扱いについて、ozacc-mail library(ozacc-mail library, http://sourceforge.jp/projects/spring-ext/)のsetFileName メソッドを使用しています。

Javamailのダウンロード

https://java.net/projects/javamail/pages/Home

tkxmail(ソースコード、Jarファイル、Javadoc)のダウンロード(2015.9.26 更新

http://k-webs.jp/download/tkxmail.zip

解凍後にできるフォルダの内容
・api — API仕様(Javadoc)
・Jar — tkxmail.jar(JavaSE,EEで使用)、tkxmailbean.jar(JavaEEだけで使用)
・source — ソースコード

tkxmai API

tkxmailのAPIドキュメントは、上記ダウンロード以外に、次のURLからも参照できます。

http://k-webs.jp/docs/tkxmail-api/index.html

普通のメールを送信する

サンプルは、ぜひ、実務で使うメールサーバーを使って動かしてください。GmailやYahooメールのようなサーバーからも送信できますが、サーバー側にいろいろな制約が設けてあり、サーバー側の都合で認証エラーにされてしまうことがしばしばあります。所属する大学や企業が所有するメールサーバーなら問題なく動作します。

package mailsample_1;
import net.tkxtools.Mail;
public class MailSample_1 {
    private static final String smtpId = "***";
    private static final String smtpPassword = "***";
    private static final int port       = 587;
    private static final String host    = "***"; // ex. com.smtp.co.jp
    
    private static String to      = "t.kawaba@gmail.com"; // 宛先
    private static String from    = "student@tk-webs.com";// 送信元
    private static String subject = "送信テスト"; // 表題
    private static String body    = "こんにちは"; // 送信する本文      

    public static void main(String[] args)  {
        Mail.send(smtpId, smtpPassword, host, port, to, from, subject, body);
    }
}

サンプルは、メソッドに渡すパラメータの記述がほとんどです(実際に動かすためには、***の部分は適切な内容を記述する必要があります)。送信命令は、Mail.sendというメソッドを呼ぶだけでOKです。簡単ですね。

なお、上記のソースを入力して動かすNetBeansのプロジェクトを作るには、次のようにします。

①[ファイル]メニューで[新規プロジェクト]を選ぶ
②[新規プロジェクトダイアログ]が開く
③左側欄で[Java]、右側欄で[Javaアプリケーション]を選んで[次>]を押す
④[プロジェクト名]欄に mailsample_1 と入力する
⑤[プロジェクトの場所]で[参照]を押して、適当なフォルダを指定する
⑥[終了]を押す

※注意
このクラスを実行するには、javax.mail.jartkxmai.jarを[ライブラリ]に追加してください。[ライブラリ]を右ボタンでクリックして、[jar/フォルダの追加]を選ぶとファイルダイアログが開きます。ダウンロードしておいたjarファイルを指定してください。

次の図のようになります。

パラメータについて

さて、普通のメール送信は、Mail.sendメソッドを使うだけでとても簡単です。ただ、引数がやたら多くなるのは仕方ありません。送信のたびに変わったりしない以下の引数については、利用するプログラムの方で、変数にあらかじめセットしておくなど工夫するとよいでしょう。

最初の4つのパラメータについて、簡単に引数について説明しておきます。

smtpId --- メールのユーザーID
smtpPassword --- メールのユーザーパスワード
host --- メールサーバー名
port --- メールサーバーが使用するポート番号(普通は587)

メールのユーザーIDは、yourid@mail.co.jp のようにメールアドレス自身を使う場合と、ID部分(yourid )だけ使う場合があります。どちらかは、メールサーバーの管理者に尋ねてください。

メールサーバー名は、メールサーバーに付けられた正式名で、例えば、smtp.mail.yahoo.co.jp (yahooメールの場合)のようになっています。実際の名前はメールサーバーの管理者に尋ねてください。

ポート番号は、一般には587番を使います。従来は25番でしたが、現在ではスパムメールなどの対策のため、SMTPーAUTHという認証方式を使うことになり、その場合は、587番を使うのが普通です。

残りの4つのパラメータは、メール送信時に変更する可能性があるパラメータです。

to --- 宛先メールアドレス
from --- 送信元メールアドレス
subject --- メールタイトル
body --- メール本文

その2へ

読者になる

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

%d人のブロガーが「いいね」をつけました。