SMTPサーバの設定さえしていれば、Web Screenを作るのと同じ感覚でメール送信もできます。
今回はその手順をまとめてみます。簡単なEntity1つだけ含むモジュールにボタンを追加し、ボタンクリックでEntityからExcelへ書き出してメールに添付して送るサンプルです。
運用中の業務システム(小規模)から定期的にバックアップデータを自動的に保存する運用を想定しています。
Table of Contents
公式情報
About Emails(同じ並びにある別ページも見てください)
大まかな流れ
- 事前準備(環境にSMTPサーバを設定します)
- Email部品を用意(Emailのデザインをする)
- 画面からメール送信するActionを書く
1.事前準備
ServiceCenterでSMTPサーバを設定します。
SMTPサーバは別途用意しておく必要があります。私はOffice365のSMTPサーバを使いました。
設定個所は、ServiceCenterを開いたのち、Administration→Emailと選択してください。
2.Email部品を用意
作り方は何通りかあると思いますが、ここではInterfaceレイヤを開き、MainFlow内にEmailをドロップして「BackupEmail」と名前を付けました。
BackupEmailをデザインします。
一部に制約がありますが、基本的にはWeb ScreenやWeb Blockのデザインをするのと同じ操作をします。
下図ではPreparationアクションで取得したレコードの数を「レコード数:」のあとに表示する設定にしています。
Web Screenと同じなので、データの用意はBackupEmailのPreparation Actionを使います。
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のみのフローです。
重要なプロパティは下記2点。
- To: 送り先。ここでは自分のテスト用メールアドレスを設定
- Email: MainFlow\BackupEmail。2.で用意したEmailを指定
動作確認
配置した「Send Me」ボタンをクリックすると確認ダイアログがでるのでOKをクリックすると、OutSystemsのメール送信キューにエンキューされます。
ServiceCenterのMonitoring→Emailsにメールログがでます。
一番右のStatusがPendingの奴は未送信ですね。Personal Environmentでテストしたところ、数秒待ったら送信されました。
メールなのでたぶん大丈夫でしょうが、リアルタイム送信でないのは覚えておいた方がいいですね。
私のThunderbirdで受信したメールが下図です。
Subjectの計算式、レコード数のカウント、添付ファイルがきちんと反映されています。