OpenProject 收件邮件创建工单时未知用户无法生成work package问题
OpenProject 外部用户入站邮件无法生成工单排查方案
前置信息
你当前使用的执行命令如下:
openproject run bundle exec rake redmine:email:receive_imap host='outlook.office365.com' username='Redacted' password='Redacted' port=993 ssl=true allow_override=type,project project=pending unknown_user=accept no_permission_check=1
现有报错信息:
ERROR -- : Message 27 resulted in error Message was not successfully handled. Message was not successfully handled.
排查步骤
- 第一步:输出详细错误日志定位根因
当前报错信息过于笼统,在原有执行命令末尾添加--trace参数重新执行,获取完整堆栈报错信息,可直接定位是用户创建失败、权限校验失败还是邮件解析失败类问题。 - 第二步:校验参数与当前版本的兼容性
执行openproject run bundle exec rake -T redmine:email:receive_imap查看当前版本支持的所有入站邮件参数,确认unknown_user=accept、no_permission_check=1两个参数是否为当前版本有效参数:- 12.x及以上版本的OpenProject中,部分分支已将
no_permission_check=1替换为skip_permission_check=1,可尝试替换参数测试 - 部分版本要求使用
unknown_user=create替代unknown_user=accept实现自动创建外部用户逻辑
- 12.x及以上版本的OpenProject中,部分分支已将
- 第三步:检查自动创建用户的配置限制
unknown_user=accept逻辑会自动为外部发件人生成系统账号,需提前确认系统配置满足以下要求:- 后台「系统设置-用户与权限」中,用户必填字段仅保留邮箱,姓名、手机号等其余字段均设为非必填,避免自动创建用户时因字段缺失报错
- 提前创建专门的外部用户组,为该组分配
pending项目的「创建工作包」权限,执行命令时添加default_group=外部用户组名参数,确保新创建的外部用户有对应项目的操作权限
- 第四步:检查邮件本身合法性
- 确认测试邮件发件人地址格式合规,无特殊字符、为空等异常情况
- 确认邮件包含纯文本正文部分,无超过系统附件大小限制的附件
- 确认邮件未被系统标记为垃圾邮件,IMAP账号对收件箱有读写权限
通用修复方案
如果排查后未发现明确配置错误,可直接使用以下调整后的命令测试:
openproject run bundle exec rake redmine:email:receive_imap host='outlook.office365.com' username='Redacted' password='Redacted' port=993 ssl=true allow_override=type,project project=pending unknown_user=create skip_permission_check=1 default_group=外部用户 --trace
注意提前将命令中的外部用户替换为你系统中实际创建的外部用户组名称。
内容的提问来源于stack exchange,提问作者M Parameshwaran
相关产品推荐
相关产品推荐

