Domino学习笔记之邮件发送程序
本篇讲解一个图书订阅系统里的一个预定图书到期提醒的例子,就是用户可以预定书籍,到货后如果一个工作日内没有去领则自动取消您的预定。
Dim session As New NotesSession
Dim db As NotesDatabase
Dim memo As NotesDocument
Dim view As NotesView
Dim rtitem As NotesRichTextItem
Set db=session.CurrentDatabase
Set memo=New NotesDocument (db)
Set rtitem=New NotesRichTextItem(memo,"body")
Dim doc As NotesDocument
Dim doc2 As NotesDocument
Dim colls As NotesDocumentCollection
Dim colls2 As NotesDocumentCollection
Dim query As String
Dim query2 As String
Dim i As Integer
Dim BorrowName As String
Dim eval As Variant
Dim bdate As String
Dim ldate As Variant
Dim wday As Variant
Dim borrowavail As Integer
query="form={$borrow} & Borrow_Status=""预定"" & Borrow_BookMailDate<>"""" & Borrow_BookMail=""发送"""
Set colls=db.Search(query,Nothing,0)
If colls.count=0 Then
Exit Sub
End If
Print "进入取消提醒"
Set doc=colls.GetFirstDocument
While Not (doc Is Nothing)
bdate=doc.GetItemValue("Borrow_BookMailDate")(0)
ldate=Evaluate("@date(@now)")
'eval=Evaluate("@Date(@Year(@totime({2008-10-12}));@month(@totime({2008-10-12}));@day(@totime({2008-10-12})))")
'eval=Evaluate("@totime({" & ldate & "})")
eval=Evaluate("(@totime({" & ldate(0) & "})-@totime({" & bdate & "}))/86400")
wday=Evaluate("@weekday(@now)")
If eval(0)>=1 And wday(0)<7 Then '周六周天除开
query2="form={$book} & Book_ComputerID={" & doc.GetItemValue("Borrow_ComputerID")(0) & "}"
Set colls2=db.Search(query2,Nothing,0)
'更新该书的可借数量
If colls2.Count>0 Then
Set doc2=colls2.GetFirstDocument
'取当前可借数量
eval=Evaluate("@texttonumber({" & doc2.GetItemValue("Book_AvailBorrow")(0) & "})")
borrowavail=eval(0)
'取已经预定的数量
eval=Evaluate("@texttonumber({" & doc.GetItemValue("Borrow_Number")(0) & "})")
borrowavail=borrowavail+eval(0)
doc2.RemoveItem("Book_AvailBorrow")
Call doc2.AppendItemValue("Book_AvailBorrow",borrowavail)
If borrowavail>0 Then
doc2.RemoveItem("Book_Status")
Call doc2.AppendItemValue("Book_Status","可借")
End If
Call doc2.Save(True,False)
'取消预定
doc.RemoveItem("Borrow_Status")
Call doc.AppendItemValue("Borrow_Status","取消预定")
Call doc.Save(True,False)
Print "CancelBookAlarm:取消预定" & doc.GetItemValue("Borrow_BookName")(0)
End If
Else
Set memo=New NotesDocument (db)
Set rtitem=New NotesRichTextItem(memo,"body")
Call rtitem.AppendText("您预定的<<" & doc.GetItemValue("Borrow_BookName")(0) & ">>书已经到了" & Chr(13) & "请尽快去管理员出领取,否则在今天将取消您的预定,谢谢")
memo.subject="您预定的<<" & doc.GetItemValue("Borrow_BookName")(0) & ">>书已经到了"
eval=Evaluate("@DbLookup({};{hpserver/hwapu}:{book\\archivesmanagement.nsf};{$users};{" & doc.GetItemValue("Borrow_BorrowName")(0) & "};2)")
Print "CancelBookAlarm:" & eval(0) & "您预定的<<" & doc.GetItemValue("Borrow_BookName")(0) & ">>书已经到了"
Call memo.Send(False,eval(0))
Set memo=Nothing
Set rtitem=Nothing
Print "CancelBookAlarm:取消预定再次提醒" & doc.GetItemValue("Borrow_BookName")(0)
End If
Set doc=colls.GetNextDocument(doc)
Wend
转载于:https://blog.51cto.com/sysmw/391961
Domino学习笔记之邮件发送程序相关推荐
- 邮件发送程序(添加附件发送)
目标:实现一个基于Web的可以发送附件的邮件程序.(涉及的知识点:文件上传+邮件发送) 知识点引入: 文件上传:开发的Web应用是基于HTTP协议的,工作在Request/Response模式下.在这 ...
- 【FastDDS学习笔记】HelloWorld示例程序编译和运行
目录 第一章:[FastDDS学习笔记]Ubuntu22上安装fastDDS环境 第二章:[FastDDS学习笔记]HelloWorld示例程序编译和运行 第三章:[FastDDS学习笔记]Fast- ...
- 基于python的图形化邮件发送程序(支持添加附件)
2019独角兽企业重金招聘Python工程师标准>>> 开发环境:centos7 基于:python3.5 调用库:tkinter smtplib email linux中类outl ...
- Rails测试《十一》添加邮件发送程序及测试邮件发送程序
讲到测试邮件发送程序,我们首先要让系统可以发送邮件.我们先来给系统添加发送邮件的功能. Action Mailer in Rails 3是一个不错的视频教程,大家可以参考. 还有就是http://gu ...
- Linux进程线程学习笔记:运行新程序
Linux进程线程学习笔记:运行新程序 周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下文并接着运行父进程中的代码,如果我们使新进程不运行原父进程的代码,转而运行另外一 ...
- ESMTP邮件发送程序
用汇编语言写ESMTP邮件发送程序 下载本节例子程序和源代码 (9.67 KB) 最近在CSDN论坛上看到许多人问着同一个问题--如何编写带服务器验证的 ESMTP 邮件发送程序,回答的人还真不少:有 ...
- python学习笔记[3]-邮件的发送
本文摘抄自:http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html 一.相关模块介绍 发送邮件主要用到了smtplib和emai ...
- python-基于yagmail库开发自动邮件发送程序
目录: 前言: 一,准备工作; 1.安装第三方库 2.邮箱设置步骤 二,编写程序 1.发送单个邮件的程序 2.发送单个邮件的进阶程序 前言: 很多时候,我们发送网络邮件都需要进入邮箱网站或App,可能 ...
- java发送邮件354_基于SMTP的JAVA邮件发送程序
这个程序没有使用JavaMail API,而是根据SMTP协议的要求直接处理协议的细节发送邮件,虽然比较麻烦了一些,但是对了解邮件协议的细节很有帮助的. 本文分两部分,第一部分是SMTP命令介绍(这个 ...
最新文章
- [文章集合] 在Windows Server 2012上关于Vmware的几点
- 测试分类 --- 根据项目流程阶段和代码可见度划分
- nginx服务器绑定域名和设置根目录的方法
- 爬动的蠕虫(C++)
- [LeetCode]LRU Cache有个问题,求大神解答【已解决】
- 查看容器ID以及如何在docker和宿主机之间复制文件
- (57)FPGA条件选择无优先级(case)
- 组态软件运行在云服务器_能在云服务器上运行软件吗
- 漫画:什么是外部排序?
- Linux系统centos7+VMwareWorkstation创建共享文件夹错误解决方法集锦
- 2022考研-高等数学教程
- JAVA菜鸟教程(一)
- QListView自定义Item
- 计算机exce常用功能,EXCEL常用函数介绍(1)EXCEL 函数 -电脑资料
- input框输入文本限制
- 推挽变压器与正激变压器的功率比较
- 我招聘了一名程序员,试用期都过了,结果发现他学历是假的...
- Uav开发杂记-4-无人机开发的C-C++
- VIO中的角速度和四元数
- 【ABBYY FineReader】pdf文件很清晰但是复制或导出都是乱码
热门文章
- 不能连接到 mysql_怎么无法连接到数据库?
- mysql记录当前表数据的数据条数据类型_MySQL学习记录:数据类型与操作数据表...
- java中paint_java中paint()的具体用法是什么?
- java 类型 转换 valueOf和parse...
- promise then返回值
- nginx 小简单指令
- vim shell命令
- linux systemctl
- matplotlib.pyplot.figure
- 信息安全完全参考手册之信息安全概述(第一章)