[Notes/Domino] メールの送信者名を変更する方法
メールの送信者名を変更する方法は、Principal を使う方法がよく知られておりますが、もう1つ方法があるのはご存知でしょうか? 管理人もしばらく知らなかったので、ご紹介いたしましょう。
Principal を使う方法
いちおう Principal を使う方法を書いておきます。
Dim ss As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim strFrom As String
Set db = ss.CurrentDatabase
Set doc = db.CreateDocument()
strFrom = "CN=Test Taro/O=TEST"
With doc
.Form = "Memo"
.Principal = strFrom
.DisplayFrom = strFrom
.DisplaySent = strFrom
.DisplaySent_1 = strFrom 'R8用
.SendTo = ss.UserName '宛先
.Subject = "Test Mail"
Call .Send(False)
End With
外部に送る場合は、INetFrom だけにインターネット用のメールアドレスをセットして送ればOKです。
この方法はお手軽ですが、From 自体を変更するわけではないため、受信者が「全員に返信」のアクションを実行すると、実際の送信者名が CC にセットされてしまいます。
mail.box に直接メールを作成する方法
以下のように、mail.box に直接メールを作ると、本当にその人が送ったかのように送信されます(Fromも変わります)。
Dim ss As New NotesSession
Dim db As New NotesDatabase("", "")
Dim doc As NotesDocument
Dim strSvr As String
strSvr = ss.GetEnvironmentString("MailServer", True)
If db.Open(strSvr, "mail.box") = False Then
Msgbox "mail.box が開けません", 0, "Error"
Exit Sub
End If
Set doc = db.CreateDocument
doc.Form = "Memo"
doc.From = "CN=Test Taro/O=TEST" '送信者名
doc.Recipients = ss.UserName '宛先
doc.SendTo = ss.UserName '宛先
doc.PostedDate = Now
doc.Subject = "Test Mail"
Call doc.Save(True, True) '保存すれば送信される
これではなりすましメールが送り放題じゃないか! と憤慨される方もいるかもしれませんが、Eメールはもともとなりすましが可能な仕様ですから、特別ノーツがおかしいわけではありません。telnet 使えば同じことができるしね。
また、実際の送信者がまったく判らないかというと、そうでもなく、$UpdatedBy を見れば簡単に判ります。スケジュールエージェントで送った場合は見分けが付きにくいですが、そもそもスクリプトから送ったメールは $AssistMail アイテムが "1" になるので、From の人が手動で送ったものではないことが判別できます。(2010/01/26追記: mail.box に文書を作成する方法では、$AssistMail アイテムはできないみたいです。失礼しました(_ _; 代わりに、$Mailer が無いかどうか、などで判別できそうです)
なので、悪いことには使っちゃだめですよ(^^;
コメント
Takenoff Labs 様
参考にさせていただきました。
ある時間に配信予約した一斉メールを、配信予約したユーザーから自動配信する要望に答えられました。
“mail.box”固定の部分は、mail.boxが複数設定されている環境でしたので駄目でした。
そこでサーバー設定文書を参照して、mail.boxの数が複数だった場合にはmail1.boxに書き込む様にしてみました。
ありがとうございました。
Posted at 2015/03/15 1:41 AM by なっから
なっからさん、コメントありがとうございます! 🙂
mail.box が複数の場合、全然考慮していませんでした(汗
複数にしている環境はわりとポピュラーですよね……
いつも有益なご指摘ありがとうございますm(_ _)m
Posted at 2015/03/15 7:25 AM by takenoff
※コメントは承認制となっております。管理者が承認するまで表示されません。申し訳ありませんが、投稿が表示されるまでしばらくお待ちください。