【问题标题】:VBA Lotus Notes mail ExpiryTimeVBA Lotus Notes 邮件过期时间
【发布时间】:2014-07-08 06:42:35
【问题描述】:

我有一个 Excel VBA 脚本,它可以从工作表中读取数据并自动生成 Lotus Notes 电子邮件。该脚本工作正常,但现在我想在电子邮件中添加 ExpiryTime 或 ExpiryDate,但我找不到该字段。

我希望你能帮我解决这个问题。

        Set Maildb = Session.GETDATABASE(Mailserver, Mailkonto)
     If Maildb.IsOpen = True Then
          'Fertig zum mailen!
     Else
         Maildb.OPENMAIL
     End If

     'Ein neues Maildokument erstellen
    Set MailDoc = Maildb.CREATEDOCUMENT
    MailDoc.Form = "Memo"
    'Mail Empfänger, CC, BCC, übergeben.
    Set SendItem = MailDoc.APPENDITEMVALUE("SendTo", "")
    Set NCopyItem = MailDoc.APPENDITEMVALUE("CopyTo", "")
    Set BlindCopyToItem = MailDoc.APPENDITEMVALUE("BlindCopyTo", "")

    MailDoc.sendto = strEmpfaenger
    MailDoc.CopyTo = strcc
    MailDoc.BlindCopyTo = strbcc


'Dim exDate As New NotesDateTime (" ")
'Dim Expiretime
'Expiretime = DateAdd("h", 8, NowTime)

'Set ExpiryTime = MailDoc.APPENDITEMVALUE("Expiration", "")
'MailDoc.ExpiryTime = Today + 1095
'MailDoc.ExpiryTime = DateAdd("m", 5, Now)
'MailDoc.ExpiryTime = Now + DateSerial(0, 0, 2)
'MailDoc.ExpiryTime = Expiretime


    'Betreff Texte Übergeben,
    MailDoc.Subject = strBetreff
    'Mail Text übergeben.
    Set rtitem = MailDoc.CREATERICHTEXTITEM("Body")
    'MailDoc.body = strText
    'Anhang einfügen.
    Call rtitem.EMBEDOBJECT(1454, "", strFilename)
    MailDoc.SAVEMESSAGEONSEND = SaveIt

    'Mail Body Text mit Signatur.
    Signature = Maildb.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
    MailDoc.Body = strText & Signature
    'Mail erstellen
    Dim workspace As Object
    Set workspace = CreateObject("Notes.NOTESUIWORKSPACE")

    Dim notesUIDoc As Object
    Set notesUIDoc = workspace.EDITDOCUMENT(True, MailDoc)

'notesUIDoc.ExpiryTime = DateAdd("m", 5, Now)
'notesUIDoc.ExpiryTime = Now + DateSerial(0, 0, 2)
'notesUIDoc.ExpiryTime = Expiretime


    'Body Text löschen wegen doppelten Signatur Problem
    Call notesUIDoc.GOTOFIELD("Body")
    Call notesUIDoc.FieldClear("Body")
    Call notesUIDoc.FieldClear("Footer")
    'Body Text + Signatur einfügen
    Call notesUIDoc.FieldAppendText("Body", MailDoc.Body)
    Call notesUIDoc.EDITDOCUMENT(True, MailDoc).GOTOFIELD("Body")

    MsgBox ("Die Mail wurde erstellt")

        'Aufräumen
    Set Maildb = Nothing
    Set MailDoc = Nothing
    Set Session = Nothing
    Set EmbedObj = Nothing
'######################################################################################
End Function

【问题讨论】:

    标签: vba email lotus-notes


    【解决方案1】:

    该字段的名称是ExpireDate

    此代码行将 ExpireDate 设置为例如未来 10 天:

    MailDoc.ExpireDate = Session.Evaluate("@Adjust(@Now; 0; 0; 10; 0; 0; 0)")
    

    【讨论】:

    • 谢谢,但它没有在邮件中添加 ExpireDate
    • 抱歉,它已输入过期日期,但 ist 仅在发送邮件中可见。但它只将现在的日期添加为 ExpireDate。
    • 该字段在 notesUIDoc 中是不可见的,但如果您保存文档,则可以在属性对话框中查看字段。那里的约会显示什么?
    • 如果您在 UI 邮件中打开“Zustelloptionen... / Erweitert / Ablaufdatum”对话框,您会看到什么日期?
    • 感谢帮助,这是 Vba 中日期的问题。现在效果很好
    【解决方案2】:

    MailDoc.ExpireDate = exDate 'Date from Excel
    

    我工作得很好。它没有通过创建邮件来显示 expireDate ,但这并不是一个问题。

    问题是 ExpirdeDate 没有显示在接收邮件中

    在 Lotus Notes 邮件概述中,邮件被标记为过期并且也具有正确的过期日期(在 Eigenschaften-> ... ->过期日期中。但是当邮件打开时,过期日期不会显示在邮件属性中。像 Diese 电子邮件 läuft ab ....

    我希望你能再次帮助我;-)

    【讨论】:

      猜你喜欢
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 2014-08-06
      • 1970-01-01
      • 2014-06-23
      相关资源
      最近更新 更多