• 検索結果がありません。

添付ファイル付きメールの送信

ドキュメント内 intra-mart WebPlatform/AppFramework (ページ 46-49)

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

つのメール送信に対して複数のネットワークを介しますので、サイズの大きなファイルを添付してメー

ル送信する場合には、メール送信処理に時間がかかってしまう場合があります

作成者:株式会社 NTT データ イントラマート

Page 41

ドキュメント内 intra-mart WebPlatform/AppFramework (ページ 46-49)