OutSystemsの画面からメールを送信する手順

SMTPサーバの設定さえしていれば、Web Screenを作るのと同じ感覚でメール送信もできます。

今回はその手順をまとめてみます。簡単なEntity1つだけ含むモジュールにボタンを追加し、ボタンクリックでEntityからExcelへ書き出してメールに添付して送るサンプルです。

運用中の業務システム(小規模)から定期的にバックアップデータを自動的に保存する運用を想定しています。

公式情報

About Emails(同じ並びにある別ページも見てください)

大まかな流れ

  1. 事前準備(環境にSMTPサーバを設定します)
  2. Email部品を用意(Emailのデザインをする)
  3. 画面からメール送信するActionを書く

1.事前準備

ServiceCenterでSMTPサーバを設定します。

SMTPサーバは別途用意しておく必要があります。私はOffice365のSMTPサーバを使いました。

設定個所は、ServiceCenterを開いたのち、Administration→Emailと選択してください。

OutSystemsのSMTP設定

2.Email部品を用意

作り方は何通りかあると思いますが、ここではInterfaceレイヤを開き、MainFlow内にEmailをドロップして「BackupEmail」と名前を付けました。

MainFlow

BackupEmailをデザインします。

一部に制約がありますが、基本的にはWeb ScreenやWeb Blockのデザインをするのと同じ操作をします。

下図ではPreparationアクションで取得したレコードの数を「レコード数:」のあとに表示する設定にしています。

Emailスクリーン

Web Screenと同じなので、データの用意はBackupEmailのPreparation Actionを使います。

Email_Preparation

GetSolutionLogs: SolutionLog Entity全件取得

RecordListToExcel1: Record Listをメールに添付するExcelファイルに変換

AttachFile1: Attach Fileをドロップして作成。プロパティは以下のとおり設定します。

  •  File Name: “SolutionLog.xlsx”
  •    File Content: RecordListToExcel1
  •    Mime-Type: “application/x-msexcel”

RecordListToExcel1の結果をSolutionLog.xlsxという名前のExcelファイルとして添付しています。

3.画面からメール送信する

適当な位置にButtonを配置して、DestinationでNew Actionを選択。

メール送ってしまうのでConfirmation Messageプロパティに適当な値を設定しておいてください。

下記のようにSend Emailのみのフローです。

WS000000重要なプロパティは下記2点。

  • To: 送り先。ここでは自分のテスト用メールアドレスを設定
  • Email: MainFlow\BackupEmail。2.で用意したEmailを指定

動作確認

配置した「Send Me」ボタンをクリックすると確認ダイアログがでるのでOKをクリックすると、OutSystemsのメール送信キューにエンキューされます。

メール送信_確認メッセージ

ServiceCenterのMonitoring→Emailsにメールログがでます。

一番右のStatusがPendingの奴は未送信ですね。Personal Environmentでテストしたところ、数秒待ったら送信されました。

メールなのでたぶん大丈夫でしょうが、リアルタイム送信でないのは覚えておいた方がいいですね。

メール送信ログ

私のThunderbirdで受信したメールが下図です。

Subjectの計算式、レコード数のカウント、添付ファイルがきちんと反映されています。

受け取ったメール

シェアする

  • このエントリーをはてなブックマークに追加

フォローする