运行邮件doc,服务器链接无法正常工作

时间:2017-06-16 10:20:22

标签: lotus-notes lotusscript lotus lotus-formula

问题:

  1. 使用代理程序运行和发送邮件可以提供不同的链接

  2. 邮件包含不包含数据库的链接

  3. 我将其发送到雅虎邮箱

    Sub Initialize()
    Print"Agent:First Reminder for LateIn Reason started running at " & DateValue(Now()) & "," + TimeValue(Now())
    Dim ss As New NotesSession
    Dim db As NotesDatabase
    Dim LateInVw As NotesView
    Dim LateInDocs As NotesViewEntryCollection
    Dim LateEntry As NotesViewEntry
    Dim LateDoc As NotesDocument
    Dim StaffVw As NotesView, StaffDoc As NotesDocument
    Dim MailDoc As NotesDocument
    Dim rtBody As NotesRichTextItem
    Dim sysdoc As NotesDocument, sysVw As NotesView
    Dim AttVw As NotesView, Attdoc As NotesDocument
    
    Set db=ss.Currentdatabase
    
    Set sysVw=db.getview("($System Settings)")
    Set sysdoc=sysvw.getfirstdocument
    If sysdoc Is Nothing Then Exit Sub
    
    
    Set LateInVw=db.getview("(Testing Late-In Time Records)")
    
    
    Set StaffVw=db.getview("($Active Staff by ID)")
    
    Set AttVw = db.Getview("($Effective Attendance Setting By ID)")
    tdy=Datevalue(Now)
    
    'get all time records for today
    Set LateInDocs=LateInVw.Allentries
    Set lateEntry=LateInDocs.getfirstentry
    Do While Not LateEntry Is Nothing
        Set LateDoc=LateEntry.Document
        Set Attdoc=Attvw.Getdocumentbykey(LateDoc.TStaffID(0), True)
        If Attdoc.LateAtt(0)="Yes" Then
        If LateDoc.LateReason(0)=""  Then
            If Not ApprovedLateIn(LateDoc, LateDoc.TAmend(0), False) Then
            'get staff mail
                Set staffDoc=StaffVw.Getdocumentbykey(LateDoc.TStaffID(0), True)
                If Not staffdoc Is Nothing Then
                'send email with link to main menu
                    If email$<>staffDoc.email(0) Then
                    '   email$=staffDoc.email(0)
                        email$="chee111385@gmail.com"
                        Set Maildoc=New NotesDocument(db)
                        Set maildoc=db.Createdocument()
                        maildoc.Form="First Reminder Notification"
                        maildoc.Subject="Smartcard Attendance System: Late-In Notification for " +Format$(LateDoc.TDate(0),"dd/mm/yyyy")
                        Maildoc.StaffName=staffDoc.StaffName(0)
                        maildoc.Sendto="chee111385@gmail.com"
                    '   maildoc.NotifyDate=LateDoc.Tdate(0)
                        maildoc.NotifyTime=Timevalue(LateDoc.TAmend(0))
                        maildoc.NotesServer=sysdoc.ServerPath(0)
                        maildoc.NotesDBPath=sysdoc.DBPath(0)
                        maildoc.send(True)
                    End If
                End If
            End If 'check against unimas's jadual kedatangan
        End If 'check for late in reason
        End If 'check late-in on/off in attendance settings
        Set LateEntry=LateInDocs.Getnextentry(LateEntry)
    Loop
    
    
    End Sub
    
  4. 我将附上我的图像文件和编码

    wrong path come out from mail

    correct path

    从这2张图片中你可以看到,实际上我想把它作为

    注意:// Mulu / SmartCard Attedancce / sas-server.nsf / Scais Main?OpenFrameset

    但发送邮件的结果是

    注意://// Scais Main?OpenFrameset

    这不是服务器和数据库。我不确定我的编码部分是错误的

    另一个附件将是我用作mail.form的表单 Form

    hotspot link include script

1 个答案:

答案 0 :(得分:2)

首先:发送带有自定义表单的外部邮件就像你做的那样不是最好的主意,因为目标系统可能无法相应地呈现所有内容。

那就是说,我首先创建一个包含所有数据的文档,然后将它转发给maildoc。代码看起来像这样:

Dim Templatedoc as NotesDocument
Dim body as NotesRichtextItem

Set Templatedoc=New NotesDocument(db)
Set Templatedoc=db.Createdocument()
Templatedoc.Form="First Reminder Notification"
Templatedoc.StaffName=staffDoc.StaffName(0)
'   maildoc.NotifyDate=LateDoc.Tdate(0)
Templatedoc.NotifyTime=Timevalue(LateDoc.TAmend(0))
Templatedoc.NotesServer=sysdoc.ServerPath(0)
Templatedoc.NotesDBPath=sysdoc.DBPath(0)

Set maildoc=New NotesDocument(db)
maildoc.Form = "Memo"
maildoc.Subject="Smartcard Attendance System: Late-In Notification for " +Format$(LateDoc.TDate(0),"dd/mm/yyyy")
maildoc.Sendto="chee111385@gmail.com"

Set body = New NotesRichtextItem( maildoc, "Body" )
Call Templatedoc.RenderToRTItem( body )

maildoc.send(True)

第二:设置两个字段(NotesServer和NotesDBPath)来计算链接。但实际上您的链接是根据环境变量计算的,并且这些链接未在服务器上设置。

将您的Link-Computation-公式更改为:

srv := NotesServer;
pth := NotesDBPath;

这应该是链接的技巧。