通过VBA发送时在Lotus Notes中设置“发件人"电子邮件地址 [英] Set 'From' email address in Lotus Notes when sending via VBA

查看:788
本文介绍了通过VBA发送时在Lotus Notes中设置“发件人"电子邮件地址的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在Access数据库中使用VBA函数来调用Lotus Notes,以将自动电子邮件发送给客户.电子邮件是从用户的个人Lotus帐户发送的,因此他们在已发送"项目中具有已发送电子邮件的历史记录.但是,我不希望客户看到我们的内部电子邮件地址.

I am using a VBA function in an Access database to call Lotus Notes to send automated emails to customers. The emails are being sent from the users personal Lotus account so that they have a history of the sent emails in their Sent items. However, I don't want the customers to see our internal email addresses.

我们正在指示客户不要回复电子邮件(请致电给我们),并希望该电子邮件看起来像是来自noreply@company.com.我可以将"ReplyTo"字段设置为noreply@company.com之类的内容,如果客户回复电子邮件,但发件人"字段仍然似乎来自用户的真实电子邮件地址,并且该客户可以来查看该信息,并仍将电子邮件发送到我们的地址.

We are instructing the customers not to reply to the email (call us instead) and want the email to appear to be from noreply@company.com. I am able to set the 'ReplyTo' field to something like noreply@company.com which works if the customer replies to the email but the 'From' field still appears to be coming from the users real email address and the customer would be able to see that information and still send an email to our address.

我尝试设置以下属性,但它们似乎不起作用:

I have tried setting the following properties, but they don't seem to work:

.DisplaySent = "noreply@company.com"
.iNetFrom = "noreply@company.com"
.iNetPrincipal = "noreply@company.com"

(我目前在下面的VBA中将这些注释掉了,因为它们似乎没有任何作用)

(I currently have these commented out in the below VBA because they didn't seem to have any effect)

下面是我正在使用的VBA.有什么建议? 谢谢!

Below is the VBA I am using. Any suggestions? Thanks!

Public Sub SendNotesMail(Subject As String, Attachment As String, Recipient As     Variant, BodyText As String, SaveIt As Boolean)

    'Set up the objects required for Automation into lotus notes
    Dim Maildb As Object 'The mail database
    Dim UserName As String 'The current users notes name
    Dim MailDbName As String 'THe current users notes mail database name
    Dim MailDoc As Object 'The mail document itself
    Dim AttachME As Object 'The attachment richtextfile object
    Dim Session As Object 'The notes session
    Dim EmbedObj As Object 'The embedded object (Attachment)

    'Start a session to notes
    Set Session = CreateObject("Notes.NotesSession")

    'Next line only works with 5.x and above. Replace password with your password
    'Session.Initialize ("password")
    'Get the sessions username and then calculate the mail file name
    'You may or may not need this as for MailDBname with some systems you
    'can pass an empty string or using above password you can use other mailboxes.
    UserName = Session.UserName
    MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"

    'Open the mail database in notes
    Set Maildb = Session.GETDATABASE("", MailDbName)
    If Maildb.ISOPEN = True Then
        'Already open for mail
    Else
         Maildb.OPENMAIL
    End If

    'Set up the new mail document
    Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.principal = "noreply@company.com"
    MailDoc.ReplyTo = "noreply@company.com"
    'MailDoc.DisplaySent = "noreply@company.com"
    'MailDoc.iNetFrom = "noreply@company.com"
    'MailDoc.iNetPrincipal = "noreply@company.com"
    MailDoc.Form = "Memo"
    MailDoc.sendto = Recipient
    MailDoc.Subject = Subject
    MailDoc.Body = BodyText
    MailDoc.SAVEMESSAGEONSEND = SaveIt

    'Set up the embedded object and attachment and attach it
    If Attachment <> "" Then
        Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
        Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
        MailDoc.CREATERICHTEXTITEM ("Attachment")
    End If

    'Send the document
    MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
    MailDoc.SEND 0, Recipient

    'Clean Up
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set AttachME = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
End Sub

推荐答案

您不能通过这种方式更改发件人".它将始终与原始发件人一起发送.

You can't change the From this way. It will always be sent with the original sender.

有两种方法可以解决此问题. 1号为noreply@company.com创建一个邮箱,并从该邮箱发送所有邮件,而不是用户的邮箱.然后,所有邮件都将有一个标志发送给"原始发件人.根据邮件客户端的不同,回复将在中央邮箱或用户框中结束.

There are two ways to solve this. No. 1 create a Mailbox for noreply@company.com and send all the mails from that box instead the user's. All the mails will then have a flag "sent by" to original sender. Depending on the mailclient, a reply will end either in the central mailbox or in the users box.

不. 2您可以直接在服务器mail.box中创建邮件,这样您就可以操纵所有字段.然后,您在用户邮箱中创建相同的文档,其中包含已发送邮件的所有必需项.

No. 2 you create the mail directly in the servers mail.box, than you are able to manipulate all the fields. And afterwards you create the same document in the users mailbox with all the necessary items for sent mails.

这篇关于通过VBA发送时在Lotus Notes中设置“发件人"电子邮件地址的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆