レッスン 3: メールメッセージを送信する

LotusScript® 言語を Domino で使用する方法を紹介する 3 つのレッスンの最後です。先にレッスン 1 と 2 を終了してください。

レッスン 3 では、電子メールメッセージを作成して送信するスクリプトの作成について説明します。このスクリプトはフォーム上のアクションを選択すると実行されます。

手順 A: フォームアクションを作成する

フォームアクションは、文書がそのフォームで表示されていればいつでも呼び出せます。

  1. Learning LotusScript データベースが設計ペインに表示されていない場合は、それを開きます。
  2. 設計ペインの [フォーム] をクリックします。右側のワークペインから [メイントピック] を開きます。フォームがワークペインの最上部に表示されます。プログラムペインが表示されます。
  3. [作成] - [アクション] を選択します。アクションの一覧が画面に表示され、[アクション] インフォボックスが表示されます。
  4. [アクション] インフォボックスでアクションの名前を「情報要求」と入力します。インフォボックスを閉じるか移動させます。
  5. プログラムペインの [実行] メニューから [LotusScript] を選択します。
  6. [オブジェクト] タブのプログラム可能なイベントの一覧から [Click] を (選択されていなければ) 選択します。

手順 B: スクリプトを入力する

  1. 次の例のとおりにサブルーチンを編集します (大文字と小文字は区別する必要はありません)。
    Sub Click(Source As Button)
        Dim db As NotesDatabase
        Dim doc As NotesDocument
        ' get the database
        Set db = New NotesDatabase( "", "Learning LotusScript.nsf" )
        ' create a new document in the database
        Set doc = New NotesDocument( db )
        ' set the new document's form so it'll be readable as a mail memo
        doc.Form = "Memo"
        ' set the new document's subject
        doc.Subject = "Request for info"
        ' set the new document's body
        doc.Body = "Please send me more information about this."
        ' mail the new document
        Call doc.Send( False, "Reuben Jordan" )
    End Sub
  2. スクリプトの最後から 2 番目の行で、Send メソッドの 2 番目のパラメータを「Reuben Jordan」から自分の名前に変更します。

手順 C: スクリプトのコンパイルとテストを行う

次の手順を行います。

  1. [ファイル] - [保存] を選択します。
  2. 「スクリプトエラーによりデータを保存しませんでした。」というメッセージが表示された場合は、プログラムペインの最下部に表示されるエラーを確認します。入力した内容をダブルチェックして、スクリプトが手順 B のスクリプトと同じかどうかを確認します。
  3. [設計] - [Notes でのプリビュー] を選択します。または Notes クライアントから作成したデータベースを開き、[メイントピック] フォームを使用して文書を作成するか、既存の文書を開きます。
  4. アクションバーの [情報要求] アクションをクリックします。電子メールメモが自分宛に送信されます。
  5. 自分のメールデータベースをチェックしてください。メールシステムによっては、時間がかかる場合があります。

手順 D: スクリプトを編集する

スクリプトを保存した後で編集する必要はありませんが、必要となった場合のために手順を示します。

  1. Learning LotusScript データベースが設計ペインに表示されていない場合は、それを開きます。
  2. 設計ペインの [フォーム] をクリックします。右側のワークペインから [メイントピック] を開きます。
  3. アクションの一覧が表示されない場合はアウトラインの境界線を左にドラッグして表示します。
  4. [情報要求] アクションを選択します。

レビュー: スクリプトの動作

作成したスクリプトの意味は、次のように表現できます。新しい文書をデータベースに作成します。いくつかの文書アイテムに値を設定します。文書をメールで送信します。

手順 B のスクリプトにはコメントが記述されています。これらのコメント以外にも、次の説明を参照してください。

課題: 選択文書の作成者へメールメッセージを送信する

これまでの手順で作成したスクリプトは、データベースで現在どの文書が開いているかに関係なく、自分宛にメールを送信します。学習した内容を使用してスクリプトを修正し、選択文書の作成者宛にメールを送信できるようにしましょう。

選択文書の作成者にメールを送信するには、アクションバーの [情報要求] ボタンをクリックしたときにワークスペースに表示される文書にアクセスする方法が必要です。これまでは NotesDocument クラスを使用してデータベースに保存された文書を表してきました。このクラスを使用すれば、データベースに保存されたどの文書にもアクセスできます。ワークスペースで現在開いている文書を表すには別のクラス (に加えて別のプロパティとメソッド) が使用されます。[リファレンス] タブを使用して次の作業に必要なクラス、メソッド、プロパティを検索しましょう。

作成方法が分からない場合は、NotesUIWorkspace クラスの説明を参照してください。

解決方法: 選択文書の作成者へメールメッセージを送信する

スクリプトの作成例を次に示します。

Sub Click(Source As Button)
    ' NEW: access the document that's currently open on the workspace
    Dim workspace As New NotesUIWorkspace
    Dim uidoc As NotesUIDocument
    Set uidoc = workspace.CurrentDocument
    ' UNCHANGED from previous script
    Dim db As NotesDatabase
    Dim doc As NotesDocument
    ' get the database
    Set db = New NotesDatabase( "", "Learning LotusScript.nsf" )
    ' create a new document in the database
    Set doc = New NotesDocument( db )
    ' set the new document's form so it'll be readable as a mail memo
    doc.Form = "Memo"
    ' set the new document's subject
    doc.Subject = "Request for info"
    ' set the new document's body
    doc.Body = "Please send me more information about this."
    ' mail the new document
    ' NEW: use the NotesUIDocument object
    ' to get the value of the From field
    Call doc.Send (False, uidoc.FieldGetText( "From" ))
End Sub