Deprecated: Creation of dynamic property Kirki\Field\Repeater::$compiler is deprecated in /home1/diywmcom/public_html/baifaqimei/wp-content/themes/blogstream/functions/kirki/kirki-packages/compatibility/src/Field.php on line 305
雨夜观月 – 第 5 页 – 白发齐眉

雨夜观月

使用Agent转发Lotus邮件

经发现,直接复制粘贴本文内容过去,导致双引号和单引号有问题,因此会有代码出错,建议粘贴过去前,先将”和’检查下,将lotus里粘贴过来的所有双引号和单引号用”和’替换一遍即可。否则会有红色字提示代码出错。

我在文末也附上txt档的文本,里面的双引号和单引号是对的。可以粘贴txt文档里的代码,点此下载1.

1.

首先,新建一个Agent,其Runtime这里的属性选择为on event,after new mail has arrived。如下图。

2.

Declarations里,定义如下变量,

TargetEmail改成你自己需要转发的Email

Const TargetEmail = “XXX@xxx.com”
Dim db As notesdatabase
Dim session As NotesSession

3.
在Initialize那里,输入如下的代码:
Sub Initialize
Dim doc As NotesDocument
Dim ReturnVal As Boolean
Dim PojistkaMax As Integer
Dim collection As NotesDocumentCollection
Dim Addeditem As NotesItem
Dim CurAgent As NotesAgent
Dim docStatus As Variant
Dim docProcessed As Boolean
Set session = New NotesSession
Set db = session.CurrentDatabase
Set CurAgent = session.CurrentAgent
PojistkaMax = 0
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing Or PojistkaMax>20)
docStatus=””
docProcessed = False
If (Doc.HasItem(CurAgent.Name & “_done”)) Then
docStatus = Doc.GetItemValue(CurAgent.Name & “_done”)
If (Cstr(docStatus(0))=”1″) Then docProcessed=True
End If
If (docProcessed=False) Then
Call ProcessEmail (doc)
If (Doc.HasItem(CurAgent.Name & “_done”)) Then
Call doc.ReplaceItemValue(CurAgent.Name & “_done”,”1″)
Call doc.Save( True, False, False )
Else
Set Addeditem = doc.AppendItemValue ( CurAgent.Name & “_done”, “1” )
Call doc.Save( True, False, False )
End If
End If
Call session.UpdateProcessedDoc(doc)
Set doc = collection.GetNextDocument(doc)
PojistkaMax = PojistkaMax + 1
Wend
End Sub
Sub ProcessEmail (Mydoc As NotesDocument)
Dim rtnav As NotesRichTextNavigator
Dim MyMssgHeader As String
Dim rtitem As NotesRichTextItem
Dim Maildoc As NotesDocument
Dim senderdomain As String
Dim b As Integer
Dim FromItem As NotesItem
Dim FromName As String
Dim FromEmail As String
Dim FromIDENT As String
Dim FromOrig As String
Dim ItemValue As Variant
Dim m_strForm As String
On Error Goto GenError
If (MyDoc.IsEncrypted) Then Exit Sub
If (myDoc.HasItem(“$KeepPrivate”)) Then
ItemValue = MyDoc.GetItemValue(“$KeepPrivate”)
If (Cstr(ItemValue(0))=”1″) Then Exit Sub
End If
If (Not myDoc.HasItem(“From”)) Then Exit Sub
Set Maildoc = New NotesDocument(db)
Call Mydoc.CopyAllItems( Maildoc, True )
‘        If (Maildoc.HasEmbedded ) Then
Set rtitem = Maildoc.GetFirstItem(“Body”)
‘                  If ( rtitem.Type = RICHTEXT) Then
‘                           If (Not (Isempty(rtitem.EmbeddedObjects))) Then
‘                                    Forall o In rtitem.EmbeddedObjects
‘                                              If ( o.Type = EMBED_ATTACHMENT ) Then
‘                                                       Call o.Remove
‘                                              End If
‘                                    End Forall
‘                           End If
‘                  End If
‘        End If
FromIDENT=””
FromEmail=””
FromName=””
FromOrig=””
If (MailDoc.HasItem(“Principal”)) Then
FromOrig=MailDoc.Principal(0)
Else
FromOrig=MailDoc.From(0)
End If
If (Instr(1,FromOrig,”CN=”)>0 And Instr(1,FromOrig,”OU=”)>0) Then
FromIDENT=FromOrig
Else
Call ParseAddr (FromOrig,FromName, FromEmail)
End If
‘ add by James
If  FromOrig =”Mail Router” Then
Exit Sub
End If
If  FromOrig =”gcsecpoccoord” Then
Exit Sub
End If
If  FromOrig =”LotusQuickr@USSECAVPQUCK02.na.ey.net” Then
Exit Sub
End If
m_strForm = MailDoc.GetItemValue ( “Form”)(0)
If (Strcompare(m_strForm, “Delivery Report”) = 0) Then
Exit Sub
End If
If (Strcompare(m_strForm, “NonDelivery Report”) = 0) Then
Exit Sub
End If
If (Strcompare(m_strForm, “Trace Report”) = 0 ) Then
Exit Sub
End If
If (Strcompare(m_strForm, “Return Receipt”)= 0) Then
Exit Sub
End If
‘ end by James
If (FromIDENT<>””) Then
MailDoc.Principal = FromIDENT
Else
If (FromEmail=””) Then
MailDoc.Principal = FromOrig
Else
MailDoc.Principal = FromName & ” <” & FromEmail & “@NotesDomain” & “>”
MailDoc.INetFrom = FromName & ” <” & FromEmail & “>”
End If
End If
If (Mydoc.HasItem(“ReplyTo”)) Then
Maildoc.ReplyTo = Mydoc.ReplyTo(0)
End If
rtitem.AddNewline(2) ‘ add 2 new lines at the end of Body
rtitem.AppendText(“In the Sent field was: “) ‘ add this text at the end of body, you can modify this part to add this only if in From field is allready something
For b=0 To Ubound(Maildoc.SendTo)
rtitem.AppendText(Maildoc.SendTo(b) + “, “)   ‘add all elements from From field
Next
rtitem.AddNewline(2) ‘ add 2 new lines at the end of Body
rtitem.AppendText(“In the CC field was: “) ‘ add this text at the end of body, you can modify this part to add this only if in CC field is allready something
For b=0 To Ubound(Maildoc.CopyTo)
rtitem.AppendText(Maildoc.CopyTo(b) + “, “)   ‘add all elements from CC field
Next
rtitem.AddNewline(2) ‘ add 2 new lines at the end of Body
rtitem.AppendText(“In the BCC field was: “) ‘ add this text at the end of body, you can modify this part to add this only if in CC field is allready something
For b=0 To Ubound(Maildoc.BlindCopyTo)
rtitem.AppendText(Maildoc.BlindCopyTo(b) + “, “)   ‘add all elements from CC field
Next
If (Maildoc.HasItem(“CopyTo”)) Then
Maildoc.CopyTo = “”
End If
If (Maildoc.HasItem(“BlindCopyTo”)) Then
Maildoc.BlindCopyTo = “”
End If
Maildoc.SendTo = TargetEmail
Call Maildoc.Send(False)
Set Maildoc = Nothing
Exit Sub
GenError:
Set Maildoc=Nothing
Set Maildoc = New NotesDocument(db)
With Maildoc
.Subject=”An error occured while parsing”
.SendTo = TargetEmail
.Body=”An error occured while parsing message ”         & Mydoc.Subject(0) & “, from: ” & Mydoc.From(0) & “….Err msg: ” & Error$
Call .Send(False)
End With
Set Maildoc=Nothing
Exit Sub
End Sub
Sub ParseAddr (ParseWhat As String, Part1 As String,Part2 As String)
Dim i As Integer
Dim i2 As Integer
i=Instr(1,ParseWhat,”<“)
i2=Instr(i,ParseWhat,”>”)
If (i>=i2) Then
Exit Sub
End If
If (i=0) Then i=0
If (i2=0) Then i2=Len(ParseWhat)+1
If (i>=3) Then
Part1=Mid(ParseWhat,1,i-2)
End If
Part2=Mid(ParseWhat,i+1,i2-i-1)
If (Instr(1,Part2,”@”)=0) Then
Part2=””
End If
End Sub
之后,系统会自动帮你分割成如下的图:
4.
确认Terminate那边有如下的语句:
Sub Terminate
End Sub
以上是通过Agent转发邮件的一个方法,已经考虑到了大部分的死循环问题,但不保证100%不会发生。本人编程水平有限。
以上资料供各位学习编程知识使用,请根据公司邮件要求/规则适当使用,本人不对使用上述代码所造成的损失负责。

故事二则

故事一:
男孩结婚后对自己的妻子比结婚前更好。一次聚会,朋友笑他:怎么结婚了还那么腻。他讪讪地笑着说道:结婚前,很多男生都想追她,我只有对她更好才能追到她;结婚后,对她好的男生越来越少,我只有对她更好,才能不让她失落。我所做的一切就是想让她幸福。
说完,所有的朋友都沉默了,没有嘲笑,只有敬佩。
故事二:
丈夫在床边护理即将临盆的妻子。妻子问丈夫,你希望是男孩还是女孩?丈夫说:如果是男孩,我们爷俩保护你,如果是女孩,我保护你们娘俩。

李承鹏:每个人有一个回不去的家乡

我看到一个视频(视频地址),一个年轻人这一年终于可以回家,爸妈做好菜等他。可半路上他接了老板的电话,车停在一座桥上进退不得……这是我见过的一个有想法的广告,那桥很隐喻,就是新时代的奈何桥,前面的家乡,后面的职场,对这一代年轻人,职场是回不去的家乡,家乡是够不到的职场。 社会给这一代太大的鸭梨,他们头大得像菠萝,身体蔫得像黄瓜,不要怪他们不回家,回家的路如此漫长,以至于老板一个电话,就可让他跟爸妈咫尺天涯……更多的时候你回了家,但找不到家的感觉,你以为你回家了,其实你永远在路上。因为你夹起饺子就想起同事为何对你阴险地笑笑,他肯定给老板打了小报告。端起酒杯就想起老板在年会上暗示有人不忠诚,说不定他发现了想跳槽。还有按揭,还有女友说的LV包,是不是给她弄个LU包……