3.3 メール連携モジュール(ファンクション・コンテナ)
3.3.2 添付ファイル付きメールの送信
Page 38 Copyright 2000-2013 株式会社NTTデータ イントラマート All rights Reserved.
<実行画面(結果)>
フォーム中の必要事項をすべて入力した後に[send]ボタンをクリックするとメールを送信することができます。
解説
MailSender API
メールを送信するための
APIです。
サンプルでは、送信先、送信者、件名、本文の設定しか行っていませんが、CC や
BCCの設定をする こともできます。
TO
および From 設定方法
MailSender
オブジェクトを利用することで、送信先や送信者、また
CCや
BCCなどの設定には、メール
アドレスだけではなく名前も設定することができます。詳しくは
APIリストを参照してください。
メール送信とサーバ処理速度
メールを送信する場合、Application Runtime と
SMTPサーバが連携する必要があります。
送信するメールの情報量はもちろんのこと、ネットワーク環境やネットワークトラフィックなどによりメール
送信処理時間がかかる場合があります。
作成者:株式会社 NTT データ イントラマート
Page 39
解説
ファイルをアップロードするためのフォーム
ファイルをアップロードするためには以下のようなフォームの記述が必要になります。
<IMART type="form" method="POST" enctype="multipart/form-data">
こうすることで、サーバ上では、フォーム・コントロール
<INPUT type="file">によりローカルのファイ ルを受け取ることができます。
<添付ファイル送信に対応したファンクション・コンテナ(sender.js)>
// メールの送信
function action_send(request){
// ロケールの取得
var locale = AccessSecurityManager.getSessionInfo().locale;
// MailSender オブジェクトを生成 var mailSender = new MailSender(locale);
// 送信情報の設定
mailSender.addTo(request.mail_to);
mailSender.setFrom(request.mail_from);
mailSender.setSubject(request.mail_subject);
// 添付ファイルの設定(RequestParameter オブジェクトとして取得)
var parameter = request.getParameter("mail_file");
if( parameter != null && parameter.getLength() > 0 ) {
// ファイル名の取得
fileName = parameter.getFileName()
// ファイルの中身を取得(バイナリ)
fileData = parameter.getValueAsStream();
添付ファイルの設定
mailSender.addAttachment(fileName, fileData);
}
// 本文の設定
mailSender.setText(request.mail_body);
// メールの送信
if( mailSender.send() ){
// 送信成功
Module.alert.link("SYSTEM.SUCCESS",
"メールを送信しました。","sender");
} else{
// 送信失敗
Module.alert.link("SYSTEM.ERR",
mailSender.getErrorMessage(),"sender");
} }
Page 40 Copyright 2000-2013 株式会社NTTデータ イントラマート All rights Reserved.
<実行画面(結果)>
解説
添付ファイルとメール送信速度
ファイルを添付してメール送信する場合、RFC の規約によりファイルデータそのものをエンコードした のち、メール本文を含めたメール情報全体をエンコードしてから
SMTPサーバに対して送信する必要 があります。このデータのエンコード処理は MailSender API が自動的に行いますが、エンコード処 理時には、アプリケーションサーバに負荷が掛かります。
添付ファイルと処理速度
添付ファイルを送信する場合、ブラウザが
Webサーバに対してファイルデータを送信し、その情報を 受信したアプリケーションサーバがメール送信処理を行います。
1