问题

原先的版本是V6或者V7,然后升级到V8、V9等版本上。之前系统中有发送邮件的任务存在,其中一种是通过代码实现的发送邮件,另一种是通过“报表导出”等任务类型发送的邮件。

此时,在升级之后的版本上,会发送通过代码实现的发送邮件任务执行失败,如下:

而通过“报表导出”等任务类型发送的邮件可以成功。

那么该如何解决通过代码方式发送不成功的问题呢?

 

解决方案

在V8版本及之后,处于安全策略的原因,系统选项中发件箱的密码是加密存储的。因此在任务的代码中,需要对发件箱的密码进行解密,方可登录到邮箱服务器上正常发送邮件。

具体可参考文档:通过计划任务把电子表格导出图片以邮件正文发送,修改任务代码。

应增加如下代码:

 

注:若是直接从V6、V7升级到V8及之后的版本,在不修改发件箱密码的情况下是不会出现此问题的。这是因为“考虑到用户如果已经有一些计划任务在运行,在升级测试的整个过程中如果还需要处理代码,可能会延长升级的周期,因此默认从V6、V7升级到V8及之后版本时还是维持原来的密码不加密逻辑。一般来说,需要修改发件箱密码的情况也极少,若升级到V8及之后版本后,修改了系统选项中发件箱的密码,就会采用新版本的加密逻辑,此时就需要对相应的代码进行处理。