私はロータススクリプトやノーツ/ドミノの知識はほとんど持っていませんが、VBAのNotesから電子メールで送信できる手続きがあります。私は通常、書式設定が本当に重要ではない内部通知にのみこれを使用します。Excel VBAからフォーマットされたLotus Notesリッチテキスト電子メールを送信する
これは、外部のメールをクライアントに送信するために使用したいと思います。企業のタイプは、私たちのスタイルガイド(基本的にはサンセリフの書体)に準拠しています。
私は、コードがプレーンテキストでしか動作しないことを伝えようとしていましたが、ルーチンが何らかのCREATERICHTEXTITEMオブジェクトを参照していることに気付きました。これは、メールルーチンに渡されたの後に、本文テキスト文字列に何らかの書式設定を適用できることを意味しますか?私たちの貴重なブランド価値を支えるだけでなく、これは電子メールの特定の箇所を強調するのに非常に便利です。
私は、このコードを適用できるかどうかを知るためにネットを掘り下げましたが、ノーツのオブジェクトモデルに慣れていないことと、オンラインのNotesリソースがアプリケーションのobtusenessを反映しているように見えることは、非常に遠くになりません。
コード:
Sub sendEmail(EmailSubject As String, EMailSendTo As String, EMailBody As String, MailServer as String) Dim objNotesSession As Object Dim objNotesMailFile As Object Dim objNotesDocument As Object Dim objNotesField As Object Dim sendmail As Boolean 'added for integration into reporting tool Dim dbString As String dbString = "mail\" & Application.UserName & ".nsf" On Error GoTo SendMailError 'Establish Connection to Notes Set objNotesSession = CreateObject("Notes.NotesSession") On Error Resume Next 'Establish Connection to Mail File Set objNotesMailFile = objNotesSession.GETDATABASE(MailServer, dbString) 'Open Mail objNotesMailFile.OPENMAIL On Error GoTo 0 'Create New Memo Set objNotesDocument = objNotesMailFile.createdocument Dim oWorkSpace As Object, oUIdoc As Object Set oWorkSpace = CreateObject("Notes.NotesUIWorkspace") Set oUIdoc = oWorkSpace.CurrentDocument 'Create 'Subject Field' Set objNotesField = objNotesDocument.APPENDITEMVALUE("Subject", EmailSubject) 'Create 'Send To' Field Set objNotesField = objNotesDocument.APPENDITEMVALUE("SendTo", EMailSendTo) 'Create 'Copy To' Field Set objNotesField = objNotesDocument.APPENDITEMVALUE("CopyTo", EMailCCTo) 'Create 'Blind Copy To' Field Set objNotesField = objNotesDocument.APPENDITEMVALUE("BlindCopyTo", EMailBCCTo) 'Create 'Body' of memo Set objNotesField = objNotesDocument.CREATERICHTEXTITEM("Body") With objNotesField .APPENDTEXT emailBody .ADDNEWLINE 1 End With 'Send the e-mail Call objNotesDocument.Save(True, False, False) objNotesDocument.SaveMessageOnSend = True 'objNotesDocument.Save objNotesDocument.Send (0) 'Release storage Set objNotesSession = Nothing Set objNotesMailFile = Nothing Set objNotesDocument = Nothing Set objNotesField = Nothing 'Set return code sendmail = True Exit Sub SendMailError: Dim Msg Msg = "Error # " & Str(Err.Number) & " was generated by " _ & Err.Source & Chr(13) & Err.Description MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext sendmail = False End Sub
ありがとうございます、これは私が想像したほど簡単です!私は私のプロジェクトにあなたのコードを統合しようとしましたが、すべてのLotus Notesライブラリへの参照を追加した後でも、私はまだ問題に陥っています。主に、NotesStreamがCOM経由で利用できるとは思っていません。これはちょっとキボッを全部に載せています。 – Lunatik
ヘルプファイルを確認しました。ストリームでCOMがサポートされていないという記述はないので、動作するはずです。通常のHTMLをフィールドに格納してから、変換を行うLotusScriptエージェントを呼び出すことができます。 – stwissel