SQLの窓

2011年09月28日


javamail 1.4.4 + JSP でとにかくメール送信

サンプルソースコードを使ってすぐできる実行環境は、以下で用意できます
( 含む Beans で lightbox.webapp )

Tomcat7 のインストールと、すぐ簡単にJSPアプリケーションテスト( DB アクセス、入力等 )

javamail は こちら(Oracle)からダウンロードします
( JDKは6以降のみで他は何もいりません )

※ 解凍して .jar を TOMCAT の lib にコピーして TOMCATを再起動します

サブミッションポートを使って、SMTP 認証を行うという前提のソースコードです。
テストは、さくらインターネットの環境で行いました。
java_mail.jsp
<!DOCTYPE html>
<html lang="ja">
<%@ page
	language="java"
	import="java.util.*"
	import="javax.mail.*"
	import="javax.mail.internet.*" 
	contentType="text/html;charset=shift_jis" %>
<jsp:useBean id="my" scope="session" class="lightbox.webapp" />

<style type="text/css">
body {
	font-family: "MS ゴシック";
}
</style>
<body>
<h1>javamail 1.4.4</h1>
<%!
// *********************************************************
// 認証用のプライベートクラス
// *********************************************************
private class SimpleAuthenticator extends Authenticator {

	private String user_string = null;
	private String pass_string = null;

	public SimpleAuthenticator( String user_s, String pass_s ) {
		super();
		user_string = user_s;
		pass_string = pass_s;
	}

	protected PasswordAuthentication getPasswordAuthentication(){
		return new PasswordAuthentication( this.user_string, this.pass_string );
	}
}
%>
<%
response.setHeader( "Expires", "Wed, 31 May 2000 14:59:58 GMT" );

// *********************************************************
// lightbox.webapp で入力データを取得
// *********************************************************
my.startApplication( application, "PAGE_01" );
my.Initialize( request );

if ( !my.get( "send" ).equals( "送信" ) ) {
%>

<form method="get">
	宛 先 <input
		type="text"
		name="to"
		value="<%= my.get("to") %>"
		style='width:340px;'
	/><br />

	差出人 <input
		type="text"
		name="from"
		value="<%= my.get("from") %>"
		style='width:340px;'
	/><br />

	題 名 <input
		type="text"
		name="subject"
		value="<%= my.get("subject") %>"
		style='width:340px;'
	/><br />

	<textarea
		name="comment"
		cols="40"
		rows="10"
		style='width:400px;'
	></textarea><br />

	<input
		type="submit"
		name="send"
		value="送信"
	/>
</form>


<%
}
else {
	out.println( "<br /><br />メール送信処理完了..." );
	out.println( "<a href=\"java_mail.jsp\">戻る</a><br />" );

	// *****************************************************
	// プロパティオブジェクトを作成
	// プロパティオブジェクトは、extends Hashtable(連想配列)
	// *****************************************************
	Properties props = new Properties();

	// *****************************************************
	// * 連想配列に送信用サーバのアドレスをセット
	// *****************************************************
	props.put("mail.smtp.host","サーバー");	// ホスト名またはIPアドレス
	props.put("mail.smtp.port","587");	// サブミッションポート
	props.put("mail.smtp.auth", "true" );	// SMTP 認証を行う

	// *****************************************************
	// メール用のセッションを作成
	// *****************************************************
	SimpleAuthenticator sa =
		new SimpleAuthenticator("ユーザ","パスワード");
	Session MailSession = 
		Session.getInstance( props, sa );

	try {

		// *****************************************************
		// メール用のメッセージオブジェクトを作成
		// *****************************************************
		MimeMessage msg = new MimeMessage(MailSession);

		// *****************************************************
		// 宛先
		// *****************************************************
		msg.setRecipients(
			Message.RecipientType.TO,
			my.get("to")
		);

		// *****************************************************
		// 送信者
		// *****************************************************
		msg.setFrom(
			new InternetAddress( my.get("from") ) 
		);

		// *****************************************************
		// 件名
		// *****************************************************
		msg.setSubject(
			MimeUtility.encodeText(
				my.get("subject"),
				"iso-2022-jp",
				"B"
			)
		);

		// *****************************************************
		// 本文
		// *****************************************************
		msg.setContent(
			my.get("comment"),
			"text/plain; charset=\"iso-2022-jp\""
		);

		// *****************************************************
		// 送信
		// *****************************************************
		Transport.send( msg );

	}
	catch (Exception e) {
		out.println("送信エラー");
	}

}

// デバッグ表示
out.println( "<br /><br /><hr />" );
out.println( my.getDebug() );
%>

</body>
</html>



posted by lightbox at 2011-09-28 23:04 | java : JSP | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
PHP正規表現チェッカー
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり