10

Lotus Script や Notes/Domino の知識はほとんどありませんが、VBA から Notes を介して電子メールを送信できる手順をかなり前にどこかからコピーしました。私は通常、フォーマットがあまり重要ではない内部通知にのみこれを使用します。

私は今、これを使用して外部の電子メールをクライアントに送信したいと考えています。企業タイプは、電子メールがスタイルガイド (基本的にはサンセリフ書体) に準拠していることを望んでいます。

コードがプレーン テキストでのみ機能することを彼らに伝えようとしましたが、その後、ルーチンがある種の CREATERICHTEXTITEM オブジェクトを参照していることに気付きました。これは、メールルーチンに渡されたに、本文テキスト文字列に何らかのフォーマットを適用できるということですか? これは、貴重なブランド価値を維持するだけでなく、メールの特定の箇所を強調するのにも非常に便利です。

このコードが適応できるかどうかを確認するために「ネット」について掘り下げましたが、ノーツのオブジェクトモデルに慣れていないため、オンラインのノーツリソースがアプリケーション自体の鈍さを反映しているように見えるという事実は、あまり理解できませんでした遠い。

コード:

Sub sendEmail(EmailSubject As String, EMailSendTo As String, EMailBody As String, MailServer as String)

    オブジェクトとして薄暗いobjNotesSession
    Dim objNotesMailFile をオブジェクトとして
    Dim objNotesDocument をオブジェクトとして
    オブジェクトとして薄暗いobjNotesField
    ブール値としての Dim sendmail

    'レポート ツールに統合するために追加
    Dim dbString を文字列として

    dbString = "mail\" & Application.UserName & ".nsf"

エラー時 GoTo SendMailError
    'Notes への接続を確立する
    objNotesSession = CreateObject("Notes.NotesSession") を設定します。
エラー時再開次へ
    'メールファイルへの接続を確立
    objNotesMailFile = objNotesSession.GETDATABASE(MailServer, dbString) を設定します。
    'メールを開く
    objNotesMailFile.OPENMAIL
エラー時 GoTo 0

    '新しいメモを作成
    objNotesDocument = objNotesMailFile.createdocument を設定します。

    Dim oWorkSpace をオブジェクト、oUIdoc をオブジェクトとして
    Set oWorkSpace = CreateObject("Notes.NotesUIWorkspace")
    oUIdoc = oWorkSpace.CurrentDocument を設定します

    「件名フィールド」を作成
    Set objNotesField = objNotesDocument.APPENDITEMVALUE("Subject", EmailSubject)

    「送信先」フィールドを作成
    objNotesField = objNotesDocument.APPENDITEMVALUE("SendTo", EMailSendTo) を設定します。

    「コピー先」フィールドを作成
    objNotesField = objNotesDocument.APPENDITEMVALUE("CopyTo", EMailCCTo) を設定します。

    「ブラインドコピー先」フィールドを作成
    Set objNotesField = objNotesDocument.APPENDITEMVALUE("BlindCopyTo", EMailBCCTo)

    メモの「本文」を作成
    objNotesField = objNotesDocument.CREATERICHTEXTITEM("本文") を設定します。

    objNotesField を使用
        .APPENDTEXT メール本文
        .ADDNEWLINE 1
    で終わる

    'メールを送る

    objNotesDocument.Save(True, False, False) を呼び出す
    objNotesDocument.SaveMessageOnSend = True
    'objNotesDocument.Save
    objNotesDocument.Send (0)

    'ストレージを解放する
    objNotesSession = Nothing を設定します
    objNotesMailFile = Nothing を設定します。
    objNotesDocument = Nothing を設定します
    objNotesField = Nothing を設定します

    'リターンコードを設定
    sendmail = 真

    サブを終了

SendMail エラー:
    薄暗いメッセージ
    Msg = "エラー # " & Str(Err.Number) & " は " _ によって生成されました
                & Err.Source & Chr(13) & Err.Description
    MsgBox Msg, , "エラー", Err.HelpFile, Err.HelpContext
    sendmail = 偽
サブ終了
4

3 に答える 3

0

送信元を変更するには、一般的な Notes ID (Auto Send/YourCompany など) を作成し、その ID でエージェントを保存します。

于 2010-06-03T02:10:59.477 に答える
0

私はそれがそのまま好きです。しかし、私はに変更 dbString = "mail\" & Application.UserName & ".nsf" し なければなりませんでしたdbString = "mail\" & Application.CurrentUser & ".nsf"

最初のコメント: 送信時にロータス ノーツを開く必要がなかったらよかったのに。

2 番目のコメント: 電子メールの送信者を変更できればと思います (たとえば、レポートを 50 人に送信する場合、勤務先のアドレスではなく一般的なアドレスから送信したい)

于 2010-03-05T16:08:29.127 に答える