工作流自动发邮件的场景、配置方法、以及遇到问题的解决办法
关于星空与第三方邮件服务集成的免责声明可参考:产品及服务条款-金蝶软件官网 (kingdee.com)
一场景介绍: 金蝶云星空中的工作流自动发邮件的场景主要以下几种:
1、流程节点审批动作发送邮件超时提醒:
2、流程消息动作发送邮箱:
3、各种关于流程操作时发邮件通知:
二、如何在星空中配置邮箱,具体步骤:
1、邮箱服务器设置—>2、虚拟邮箱设置--->3、参数设置(流程中心:虚拟邮箱选择)--->4、用户列表维护用户邮箱---->5、查看邮件发送日志。另外需要确保执行计划列表中的工作流流程消息通知和服务是正常运行的。
1、 邮箱服务器设置,需要administrator登录进行配置
字段说明:
A、 邮箱服务商:系统中已经提供了部分常用的邮箱设置,选择后自动返回各配置项。但需要注意的是:因为流程支持批量处理会导致同时批量发送大量的邮件,所以建议使用企业邮箱服务器,不建议使用个人邮箱来发送,一般邮箱服务对个人邮箱来说每天发送的量和发送内容都有限制。
B、 邮箱服务器:企业邮箱服务器一般由客户信息部提供准确的名称,如果不准确则无法发送邮件;
C、 服务器名称:表示服务器的名称即可;
D、邮件类型:这里是发送的类型,一般pop3,比较少用其他类型;(建议选pop3)
E、 SMTP端口号:一般由客户信息部提供,需要保证是连通的端口,如果是25端口,则需要勾选:此服务器不要求加密,其他端口则需要勾选加密;
测试端口可连接的方法:在应用服务器上执行命令:telnet+邮箱服务器IP(或域名)+端口号;
F、 邮件发送方式:office365邮箱需要选择exchange(极个别的客户邮箱配的netSmtp),其他邮件建议使用default,其他方式用于7.5旧版本升级使用,一般很少使用。
F1、如果邮件服务系统是标准的SMTP协议(RFC 2821),建议使用 NETSMTP
F2、如果是很老的邮件系统,在 Lumisoft 和 NETSMTP 都无法正常发邮件的情况下,使用 WebSmtp
F3、Exchange仅支持 用于 Exchange Server 构建的邮件服务系统
G、各个协议说明:
G1、Exchange 是 用于 Exchange Server, Exchange Server 是微软公司的一套电子邮件服务组件,是个消息与协作系统。或者是基于微软Exchange Server自行开发的邮件服务系统;注意 微软Exchange Server 在 2022 年 12 月 31 日之前,如果租户中的用户和应用无法连接,则可以重新启用受影响的协议。 现在, (你或 Microsoft 支持人员) 无法在租户中重新启用基本身份验证。详情见https://learn.microsoft.com/zh-cn/exchange/clients-and-mobile-in-exchange-online/deprecation-of-basic-authentication-exchange-online如果是Exchange Server无法发邮件,需要联系邮件服务商,开启基本身份验证。其他返回的错误码需要找邮件服务商指导如何在邮件服务系统里配置支持发送邮件;
G2、NetSmtp是用 微软 System.Net.Mail.SmtpClient 允许应用程序使用简单邮件传输协议 (SMTP) 来发送电子邮件。SmtpClient 用于将电子邮件发送到 SMTP 服务器进行传递。 SMTP 协议在 RFC 2821 中定义,该协议在 上 https://www.ietf.org提供。SmtpClient 不支持许多新式协议。 WebSmtp是用 微软 System.Web.Mail.SmtpMail 邮件可以通过内置于 Windows 2000 Microsoft 的 SMTP 邮件服务或通过任意 SMTP 服务器传递。
G3、Lumisoft 是Lumisoft.NET针对.NET Framework开发的库,可以兼容大部分RFC 2821 中定义中没有的新式协议。缺点是大部分邮件服务商返回的错误码,无法显示出来。如果出发不出邮件的情况,需要进入邮件服务商系统,查看邮件日志,和失败原因;然后按照失败错误,找邮件服务商客服指导如何在邮件服务系统里配置支持发送邮件;
H、 关于邮箱服务器测试:发送邮箱密码需要注意
2、 虚拟邮箱设置,虚拟邮箱的作用:一般用来使用统一发送地址发送邮件,例如一个公司人力资源部发送的邮件统一使用地址:HR.XXXX@XXX.com;虚拟邮箱可以是一个,也可以是多个,一个时不需要设置虚拟邮箱和用户的对应,默认所有用户使用同一个虚拟邮箱,多个虚拟邮箱时需要进行对应哪些用户使用A虚拟邮箱地址发,哪些使用B地址来发。同时系统也可以根据虚拟邮箱找到对应的发送服务器。
虚拟邮箱测试:
无密码的邮件发送方式存在安全风险,不符合信息安全要求,星空产品不支持该方式。
也可以不配置虚拟邮箱,使用不同的用户对应的邮箱发送,但这样比较麻烦,需要在每个用户登录系统后的个人信息界面维护发送服务器,因为只有维护了,系统才能找到使用的邮箱服务器。
3、参数设置,虚拟邮箱测试成功后,就需要进行参数设置了,设置是否使用虚拟邮箱,使用几个虚拟邮箱,如果这里不设置,发送邮件也不会成功
4、 邮件设置好后,进行用户信息维护,一般流程中的邮件接收人都为星空系统用户,在用户中维护邮箱
5、 流程中的消息发送依赖执行计划去轮询,所以执行计划需要正常运行
消息通知的执行计划是准备状态,运行的间隔时间请注意不要大于工作流节点的超时提醒时间,例如:超时5分钟邮件提醒,消息通知执行计划30分钟执行一次,这样就作不到5分钟提醒。
6、 都设置好后,可以提交流程进行测试了,查看流程节点上的邮件是否发送成功可在流程日志中查看,可以根据提示信息分析发送失败的原因。
三、客户现场经常遇到的问题:
1、邮箱设置的端口不通:例如:
解决办法:一般公有云环境25端口是关闭的(因为该端口不加密),建议用其他端口,例如QQ邮箱用587、465,网易邮箱用465,或者客户邮箱自己设置的特定端口。
邮箱服务配置测试通过,流程自动发送失败,没有报错信息,或者之前能发,忽然不能发,一般也是端口问题导致,此时建议使用端口测试命令进行测试
2、端口加密方式选错,邮箱测试时密码不对,手工发邮件提示如下:
下面的报错信息,可以通过修改发送方式IMAP改为pop3解决
3、邮箱服务器名称不正确导致邮件发送失败
例如网易企业邮箱,可以通过该网址查询邮箱域名的正确性和对应的端口
https://qiye.163.com/help/client-profile.html
腾讯的企业邮箱:http://www.qqmail.zj.cn/article/146.htm
阿里的企业邮箱配置:https://www.ali-exmail.cn/help/108.html
例如这个报错信息:
客户邮箱服务配置:客户用的是BOSSMAIL企业邮箱,https://www.bosscloud.cn/help_center/webmail/html/index.html, 可以查到pop3开头的邮箱域名是接收服务器,smtp开头的才是发送服务器
修改成下面的名称就可以了
4、 历史版本存在的缺陷问题。
a) 2020.7月前的环境,邮件主题上有n/r/换行符时发送失败,后面补丁已经修复;
报错信息: 指定字符串与主题所要求的形式不符。;错误类型:System.ArgumentException;错误堆栈: 在 System.Net.Mail.Message.set_Subject(String value) 在 Kingdee.BOS.Util.MailUtils.Sendmail(String from, String displayName, List`1 toList, String subject, String body, String SMTPHost, Int32 port, Boolean enableSSL, Dictionary`2 dictStream, String userName, String pass)
b) 发送邮箱地址中有横线字符发送失败,2020.7月补丁已修复。
报错:用户XXXX1@XXX.com发送邮件到XXXX2@XXX.com失败。详细信息:错误消息: 指定字符串与主题所要求的形式不符。;错误类型:System.ArgumentException;错误堆栈: 在 System.Net.Mail.Message.set_Subject(String value) 在 Kingdee.BOS.Util.MailUtils.Sendmail(String from, String displayName, List`1 toList, String subject, String body, String SMTPHost, Int32 port, Boolean enableSSL, Dictionary`2 dictStream, String userName, String pass) 在 Kingdee.BOS.Workflow.ActionEvents.EmailProvider.SendEmail(Context context, Message msg, String userName, String pass, MailFrom mailFrom, Boolean writeLog);
c) 发送日志报错如图,2021.1月环境存在该问题,3月补丁已修复
d)2021年1月环境,消息节点的邮件变量发送邮件失败的问题,2021.3月补丁已经修复
5、 有些邮箱不支持第三方邮箱服务的,例如钉钉邮箱,可以百度了解邮箱服务提供商的限制。
6、 因为安全原因,公有云环境禁止了应用服务器访问客户的邮箱服务器,表现为测试成功,但收不到邮件,在应用服务器上测试telnet https+域名,不通,解决办法:需要提运维单审批加入白名单。
7、 客户邮箱自身问题导致
a) 表现为有些用户可以收到,有些用户收到邮件,
b) 发送日志是成功的,但没有收到邮件,可以检查是否在接收人的垃圾邮箱中,需要修改接收邮箱的配置。
8、 一个流程节点同时给多个用户发邮件是一批发送的,如果其中一个用户邮箱不正确导致发送不成,其他用户也无法成功,如果其中有用户没有邮箱地址,则不影响。
9、 因为发送邮件太频繁导致发送不成功,应该是第三方邮箱的限制。如下图所示,一般是因为第三方邮箱服务限制了在同一时间发送的邮件数导致,可以联系邮箱提供商的客服咨询。
工作流自动发邮件的场景、配置方法、以及遇到问题的解决办法
本文2024-09-23 03:33:28发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-159625.html