有关定时发送邮件代理不能发出邮件问题

问题描述

我写了一个定时发邮件的代理,但手动运行是OK的,能发出邮件,但定时运行是不能发出邮件,查看Log属于正常,在规定的时间有运行,请各位高手帮忙解决,代码如下(是一个文件批核程序,需定时向待批核人发送邮件提醒):SubInitializeDimsessionAsNewNotesSessionDimdbAsNotesDatabaseDimcollectionAsNotesDocumentCollectionDimDocumentAsNotesDocumentSetdb=session.CurrentDatabaseDimdateTimeAsNewNotesDateTime("")dateTime.LSLocalTime=NowDate$=dateTime.DateOnlysearchFormula$={eStatus="Approve1"|eStatus="Approve2"|eStatus="Approve3"|eStatus="Approve4"|eStatus="Sign"|eStatus="MEApprove"|eStatus="Modification"&DocType="MEItemForm"&vStatus!="删除"}Setcollection=db.Search(searchFormula$,Nothing,0)SetDocument=collection.GetFirstDocument()WhileNot(DocumentIsNothing)SendTo=""tRequestName=Document.tRequestName(0)IfDocument.eStatus(0)="Approve1"ThenSendTo=Document.ApprovalBy(0)tTitle="WaitforApproval"ElseifDocument.eStatus(0)="Approve2"ThenSendTo=Document.ManagerBy(0)tTitle="WaitforApproval"ElseifDocument.eStatus(0)="Approve3"ThenSendTo=Document.GManagerBy(0)tTitle="WaitforApproval"ElseifDocument.eStatus(0)="Approve4"ThenSendTo=Document.MManagerBy(0)tTitle="WaitforApproval"ElseifDocument.eStatus(0)="Sign"ThenSendTo=Document.SignBy(0)tTitle="WaitforSign"ElseifDocument.eStatus(0)="MEApprove"ThenSendTo=Document.tApproveBy(0)tTitle="WaitforDisposal"ElseifDocument.eStatus(0)="MECheck"ThenCalldatetime.adjustDay(1)IfDocument.tICompleteDate(0)=<datetime.DateOnlyThenSendTo=Document.tApproveBy(0)tTitle="WaitforDisposal"ElseExitSubEndIfElseifDocument.eStatus(0)="MECheck"ThenCalldatetime.adjustDay(-1)IfDocument.tICompleteDate(0)=<datetime.DateOnlyThenSendTo="JimmyZhang/ME2-OP1/DG-PCPartner@DG-PCPARTNER"tTitle="WaitforDisposal(此项目已经超过预计完成日期一天以上)"ElseExitSubEndIfElseifDocument.eStatus(0)="Modification"ThenSendTo=Document.tEnglishName(0)tTitle="WaitforModification"EndIfDimnewDocAsNotesDocumentDimrtitemAsNotesRichTextItemDimsdocAsNotesDocumentSetsdoc=DocumentSetnewDoc=NewNotesDocument(db)Setrtitem=NewNotesRichTextItem(newDoc,"Body")Callrtitem.AppendText("Clickonthelinktoaccessthedocument")Callrtitem.AppendDocLink(sdoc,sdoc.Subject(0))newDoc.Form="Memo"newDoc.Subject="(系统自动邮件提示!)"+"设备/工具/积架/工程申请--申请人:"+tRequestName+"--"+tTitlenewDoc.SendTo=SendTonewDoc.Send(False)SetDocument=collection.GetNextDocument(Document)WendExitSubEndSub

解决方案

解决方案二:
可能是服务器的时间格式与你的本机时间格式不一样,这个语句不太保险:IfDocument.tICompleteDate(0)=<datetime.DateOnlyThen由于是文本比较,服务器的时间格式与你的本机保存的文本型时间值格式可能不等(即使相同日期)。最好用时间值做比较,如果必须用文本作比较,那就在代码里确保tICompleteDate的格式是与"20100319"类似的写法,然后比较的时候把datetime先转换为这个格式再比较。
解决方案三:
除了二楼说的这个原因之外,还可以考虑一下是不是因为服务器所在的环境和邮件接收者的邮箱服务器之间是不是通的。因为手动运行的时候其实是用本地作为服务器。
解决方案四:
将调试语句详细化,分析具体究竟是哪步出了问题,这么一大堆代码真的很不好分析。
解决方案五:
捕捉一下Error生成一条日志,根据这个去查找具体运行到哪一行有问题再调整~

时间: 2024-09-13 20:09:38

有关定时发送邮件代理不能发出邮件问题的相关文章

sqlserver数据库使用存储过程和dbmail实现定时发送邮件_MsSql

上文已讲过如何在数据库中配置数据库邮件发送(备注: 数据库邮件功能是 基于SMTP实现的,首先在系统中 配置SMTP功能.即 在 "添加/删除程序"面板中 "增加/删除WINDOWS组件",选中并双击 打开"IIS"或 "应用程序",勾选 "SMTP SERVICE"然后 一路 点"下一步"即可.一般不需要这一步,直接配置即可) 本文给出一个使用实例,结合存储过程和Job来实现定时从数据

foxmail邮箱定时发送邮件的设置方法

  foxmail邮箱是不少网友都在使用的邮箱,不过,很多foxmail邮箱的人性化功能却不为人知.比如说,foxmail邮箱的密送功能.定时发送邮件功能等.今天,小编就给大家分享一下关于foxmail邮箱定时发送邮件的设置方法.那么,foxmail邮箱的定时发送功能怎么开启呢?一起来看看今天的foxmail邮箱使用方法就知道了! 1.首先我们将邮件写好,点击右上角菜单==定时发送; 2.出现定时发送设置选项,设置您需要定时发送邮件的发送时间; 3.设置好了之后,点击发送邮件会自动到草稿箱里面,

foxmail邮箱如何定时发送邮件

1.首先我们将邮件写好,点击右上角菜单==定时发送; 2.出现定时发送设置选项,设置您需要定时发送邮件的发送时间; 3.设置好了之后,点击发送邮件会自动到草稿箱里面,等待 定时的时间进行邮件发送操作; 4.点击邮件,查看可以看到 设置好的定时发送邮件的信息如下:

asp.net基于windows服务实现定时发送邮件的方法_实用技巧

本文实例讲述了asp.net基于windows服务实现定时发送邮件的方法.分享给大家供大家参考,具体如下: //定义组件 private System.Timers.Timer time; public int nowhour; public int minutes; public string sendTime; public Thread th; public string isOpen;//是否启用定时发送 public string strToEUser; public static i

lotus notes-请问下C#操作Lotus Notes发送邮件,如何设置邮件回执呢?

问题描述 请问下C#操作Lotus Notes发送邮件,如何设置邮件回执呢? 用C# .net调用Lotus Notes 里的domino 发送邮件,如何设置邮件选项,选回执

c#-C#定时发送邮件 怎么总是发送失败

问题描述 C#定时发送邮件 怎么总是发送失败 解决方案 c# 发送邮件C#发送邮件C#,WinForm发送邮件

请教关于mantis定时发送邮件

问题描述 请教关于mantis定时发送邮件 需求:mantis定时发送邮件 版本:1.2.8 详细说明: 1.每周五下午6点对已分派的问题发送邮件到项目相关人员

用网页发邮件,个别用户发出邮件的发件人显示admin?

问题描述 各位好,好久没来了.最近公司碰到个问题,就是个别用户在登录dwa用网页发出邮件的时候,发件人那显示的是admin,在惯用选项那里设置邮件所属人那里设置了也没有用.请问有谁碰到过吗?怎么解决?PS:重建数据库应该可以解决,但重建好麻烦: 解决方案 解决方案二:应该是用户打开发邮件那个网页页面后长时间没关停在那(或写了一半去做别的事了),这时系统设定的用户在线时间又过了,后来用户又回头接着写这个邮件,写了发送了,对方收到时就不是那个登录人的姓名而是admin.解决方案三:你也可以模拟下是否

.net应用程序调用LotusNotes的COM组件自动发送邮件,如何在邮件正文粘贴图片

问题描述 开发.net应用程序调用LotusNotes的COM组件来实现自动发送邮件,想在邮件正文直接显示图片,不是以附件的形式发送,请问如何实现?publicBooleanSendNotesMail(objectTo,objectcopyTo,stringsubject,stringbody,string[]attachfile){stringfrom=ConfigurationManager.AppSettings["from"];Domino.NotesSessionns=nul