Lotusscript: From address when sending email as web user

22,925

Solution 1

The field Principal is the proper solution, but the real sender's name will probably be visible under water. Actually, there is different solution: to create the mail directly in the mail.box database. That's what the TeamMail template does on OpenNTF. See http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/Team%20Mail%20Tamer

Of course, this is NOT the proper way, but if you want to obfuscate the sender, there's no other solution.

Well, technically that's not entirely true: you could create an Extension Manager DLL that changes the sender... Dirty, you say? Sure.

Solution 2

Actually searching through the forums I found a solution to this age old problem (http://www-10.lotus.com/ldd/nd6forum.nsf/0/13706561dc7d693f852570af0062fcec?OpenDocument):

Principle = "[email protected]"
maildoc.Form = "Memo"
' Principal overrides From
' Must be formatted as below and must include the domain @xyz.com
' Format should equal: "From User" <[email protected]@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

Hope this helps other people - this has been a issue for me for a very long time!!

Solution 3

The security in Lotus Notes won't let you override the actual sender information via LotusScript. The only way to control it is to set the Run on behalf of property of the agent to the user from which the email should appear to come. However, you have to set that using the designer and you can't change it at runtime.

It's hard to tell from your question, but if you've tried that and found that the web user setting is overriding the 'on behalf of' setting, you might try splitting the creation of the email into a second agent, and then having that second agent run not as a web user.

Hope this helps!

Solution 4

The issue with your code is that you do not set Principal field correctly. It should include @NotesDomain where NotesDomain is your Domino mail domain.

I do it like this in QuerySend

    .INetFrom = |"| + strDispName + |" <| + strEmail + ">"
    .Principal =  |"| + strDispName + |" <| + strEmail + "@" + profile.NotesDomain(0) + ">"
    .From = strEmail
    .tmpDisplaySentBy = strEmail

Solution 5

As other already said, unless you create the mail in mail.box, the original sender will always be visible. That is part of the Notes/Domino security.

I posted some code on my blog last year, where you can see how to to do that: http://blog.texasswede.com/lotusscript-mail-notification-class/

Share:
22,925
pipalia
Author by

pipalia

XPages Developer Notes Developer Domino Developer Sage Developer

Updated on August 29, 2020

Comments

  • pipalia
    pipalia over 3 years

    I have a lotus-script agent which runs as Web User since I need to know who the current user is and process information accordingly. The problem is that when sending a email in this agent the From email address shows the web user email address rather than the one I have defined. I am setting the following fields before I send the email (as 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
    

    But still the From address is shown as the web user's address. What am I missing here? Any help would be really appreciated.