为WSO2文件传输服务(基于文件连接器)添加邮件通知方案咨询
无需连接器的WSO2文件传输邮件通知方案(MI 7.1.0)
直接用WSO2 Micro Integrator内置的SMTP传输能力即可实现,不用依赖Email或Gmail连接器,操作步骤如下:
1. 配置SMTP端点
在Integration Studio的项目中,进入Endpoints目录新建一个SMTP端点:
- 地址填写
smtps://smtp.gmail.com:465(以Gmail为例,其他邮箱替换对应SMTP地址) - 勾选Enable Authentication,填入你的邮箱地址和应用专用密码(Gmail已禁用普通密码用于第三方客户端,需开启两步验证后生成应用密码)
- 按需启用SSL、设置超时等参数
2. 编写邮件发送序列
在文件传输完成的流程分支(比如文件移动到目标目录后的out序列)中,添加Send Mediator调用SMTP端点,先构造邮件内容:
<sequence name="FileTransferSuccessSeq" xmlns="http://ws.apache.org/ns/synapse"> <!-- 拼接邮件内容,通过上下文变量获取文件名和路径 --> <payloadFactory media-type="xml"> <format> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <text/xml> <message> <subject>文件传输完成通知</subject> <from>你的邮箱@gmail.com</from> <to>收件人邮箱@xxx.com</to> <body>文件 $ctx:FILE_NAME 已成功传输至目标目录 $ctx:FILE_PATH</body> </message> </text/xml> </soapenv:Body> </soapenv:Envelope> </format> <args> <arg evaluator="xml" expression="get-property('FILE_NAME')"/> <arg evaluator="xml" expression="get-property('FILE_PATH')"/> </args> </payloadFactory> <!-- 调用之前配置的SMTP端点发送邮件 --> <send> <endpoint key="你创建的SMTP端点名称"/> </send> </sequence>
3. 关联文件服务与邮件序列
在文件连接器的配置界面,找到On Complete事件选项,将其关联到上述创建的FileTransferSuccessSeq序列,确保文件传输完成后自动触发邮件发送。
4. 全局参数配置(可选)
如果需要统一配置邮件传输参数,直接修改MI的deployment.toml文件:
[transport.smtp] parameter.Hostname = "smtp.gmail.com" parameter.Port = 465 parameter.Username = "你的邮箱@gmail.com" parameter.Password = "你的应用专用密码" parameter.EnableSSL = true parameter.StartTLSEnabled = false
关键注意事项
- Gmail必须开启两步验证并使用应用专用密码,普通登录密码无法用于第三方SMTP客户端
- 确保MI服务器能正常访问SMTP服务器端口(如465/587),无防火墙或网络策略拦截
- 邮件发送失败时,查看MI的
wso2carbon.log日志,里面会包含具体错误信息(如认证失败、连接超时等)
内容的提问来源于stack exchange,提问作者Nalyssia Govender
相关产品推荐
相关产品推荐

