5

現在のユーザーが誰であるかを知り、それに応じて情報を処理する必要があるため、Web ユーザーとして実行されるロータス スクリプト エージェントがあります。問題は、このエージェントで電子メールを送信すると、From 電子メール アドレスに、定義したものではなく Web ユーザーの電子メール アドレスが表示されることです。メールを送信する前に、次のフィールドを設定しています (mime として):

    mailDoc.Form = "Memo"
    mailDoc.Subject = strSubject
    mailDoc.InetSendTo = strFrom
    mailDoc.PostedDate = Now
    mailDoc.Principal = strFrom
    mailDoc.FROM = strFrom
    mailDoc.INETFROM = strFrom
    mailDoc.~INetPrincipal = strFrom
    mailDoc.ReplyTo = strFrom
    mailDoc.SendFrom = strFrom
    mailDoc.SentBy = strFrom
    mailDoc.altFrom = strFrom
    mailDoc.tmpDisplaySentBy = strFrom
    mailDoc.DisplaySent = strFrom
    mailDoc.ToShow = strFrom

    mailDoc.SendTo = strSendTo

ただし、From アドレスは Web ユーザーのアドレスとして表示されます。ここで何が欠けていますか?どんな助けでも本当に感謝しています。

4

6 に答える 6

5

実際にフォーラムを検索すると、この古い問題の解決策が見つかりました (http://www-10.lotus.com/ldd/nd6forum.nsf/0/13706561dc7d693f852570af0062fcec?OpenDocument):

Principle = "customerservice@xyz.com"
maildoc.Form = "Memo"
' Principal overrides From
' Must be formatted as below and must include the domain @xyz.com
' Format should equal: "From User" <fromuser@xyz.com@DOMAIN>
maildoc.Principal = |"Customer Service" <| + Principle + |@xyz.com>|
maildoc.From = Principle
maildoc.AltFrom = Principle
maildoc.SendFrom = Principle
maildoc.INetFrom = Principle
maildoc.tmpDisplaySentBy = Principle
maildoc.tmpDisplayFrom_Preview = Principle
maildoc.DisplaySent = Principle

これが他の人に役立つことを願っています-これは私にとって非常に長い間問題でした!!

于 2012-05-20T20:39:28.660 に答える
4

Lotus Notes のセキュリティでは、LotusScript を介して実際の送信者情報を上書きすることはできません。これを制御する唯一の方法は、エージェントの [代理で実行]プロパティを、電子メールの送信元として表示されるユーザーに設定することです。ただし、デザイナーを使用して設定する必要があり、実行時に変更することはできません。

あなたの質問から判断するのは難しいですが、それを試してみて、Web ユーザー設定が「代理」設定を上書きしていることがわかった場合は、電子メールの作成を 2 番目のエージェントに分割してから、それを実行してみてください。 2 番目のエージェントは、Web ユーザーとしてではなく実行されます。

お役に立てれば!

于 2012-05-20T20:01:13.117 に答える
3

コードの問題は、プリンシパル フィールドを正しく設定していないことです。@NotesDomain を含める必要があります。ここで、NotesDomain は Domino メール ドメインです。

QuerySend でこのようにします

    .INetFrom = |"| + strDispName + |" <| + strEmail + ">"
    .Principal =  |"| + strDispName + |" <| + strEmail + "@" + profile.NotesDomain(0) + ">"
    .From = strEmail
    .tmpDisplaySentBy = strEmail
于 2013-05-31T15:14:53.590 に答える
3

フィールド Principal は適切な解決策ですが、実際の送信者の名前はおそらく水中で見えるでしょう。実際には、別の解決策があります: mail.box データベースにメールを直接作成することです。それが、TeamMail テンプレートが OpenNTF で行うことです。http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/Team%20Mail%20Tamerを参照してください。

もちろん、これは適切な方法ではありませんが、送信者を難読化したい場合、他に解決策はありません。

技術的には、これは完全に正しいわけではありません。送信者を変更する Extension Manager DLL を作成することはできますが、汚いと思いますか? もちろん。

于 2012-05-21T08:52:10.453 に答える
1

他の人が言ったように、mail.box でメールを作成しない限り、元の送信者は常に表示されます。これは Notes/Domino セキュリティの一部です。

昨年、私のブログにいくつかのコードを投稿しました。その方法については、http: //blog.texasswede.com/lotusscript-mail-notification-class/を参照してください。

于 2012-05-30T18:46:31.493 に答える