集成MS Office 365 OAuth2后Redmine邮件内容异常求助
问题分析与解决方案
核心问题定位
你遇到的字符被=替换、HTML标签损坏的情况,本质是邮件MIME编码的换行冲突——Redmine/Helpdesk Pro生成的邮件内容在经过MS365 OAuth2的SMTP服务时,quoted-printable编码的自动换行逻辑出错,导致76字符附近的HTML标签被截断,=被错误插入到标签内部。
可行解决方案
强制8bit编码避免自动换行
在Redmine的config/configuration.yml中修改邮件配置,明确设置传输编码为8bit,跳过quoted-printable的自动拆分:email_delivery: delivery_method: :smtp smtp_settings: # 保留你的MS365 OAuth2相关配置(client_id、client_secret等) content_transfer_encoding: "8bit" mime_version: "1.0"彻底强制纯文本邮件输出
界面设置纯文本可能被Helpdesk Pro插件覆盖,需通过代码层面强制:- 在
config/additional_environment.rb中添加:ActionMailer::Base.default_content_type = "text/plain" ActionMailer::Base.default :content_transfer_encoding => "8bit" - 替换Helpdesk Pro的HTML邮件模板:找到插件目录下
plugins/redmine_helpdesk/app/views/mailer中的.html.erb文件,全部替换为对应的纯文本.text.erb版本,或直接删除HTML模板文件,让系统 fallback 到纯文本。
- 在
排查MS365 Exchange的邮件流规则
登录Exchange Admin Center,检查邮件流 > 规则中是否有自动转换邮件格式的规则(比如强制将纯文本转为HTML),这类规则会干扰Redmine的邮件输出格式,需暂时禁用测试。隔离插件兼容问题
暂时禁用Helpdesk Pro插件,测试Redmine原生邮件发送是否正常:- 如果原生发送正常,说明是插件与MS365 OAuth2的编码逻辑冲突,需联系RedmineUp提交bug,或自行修改插件的邮件发送代码,移除手动设置的quoted-printable编码逻辑。
- 如果原生也有问题,需检查Redmine的
action_mailer核心配置,确保没有第三方插件修改了邮件编码逻辑。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

