在丁老师从事OJS期刊管理系统(Open Journal Systems)的使用和研究过程中,经常被相关出版社和学术用户咨询最多的就是关于OJS邮件发送的问题,根据OJS系统的安装部署、实际运行、官方论坛反馈和使用经验,常见问题主要集中在以下几个方面,丁老师将对这些关于Email的常见问题进行解答和说明。
一、邮件无法发送
问题故障:
包括注册时的Email验证、找回密码、邀约、工作流邮件信息通知等,邮件全部无法正常发送。
解决方法:
1.检查Config.ini.php中,邮件发送功能是否开启。
2.检查Email配置是否正确,包括邮件的smtp服务器地址、端口、发信账号、发信密码是否设置正确。
3.检查发信Email邮箱,是否开启支持第三方客户端发送功能。
二、SMTP Authentication Failed
问题故障:
已在Config.ini.php中配置且开启了Email发信功能,但在发信时提示SMTP Authentication Failed。
解决方法:
该代码说明发信时SMTP认证失败,需要检查发信邮箱的账号和密码是否填写正确。
三、Invalid From Header
问题故障:
可以发信,但发信后被目标邮件服务器拒收,返回为"Invalid From Header"或"因信头from字段拒收邮件"等错误提示。
解决方法:
该故障为发信时,发信账号和邮件的真实发信邮件账号不一致,如设置的SMTP发信账号为"a@a.com",但真实发信账号却为"b@b.com"。针对这种情况,需要设置邮件的发信账号保持一致,可以直接在Config.ini.php中的Email模块,设置orce_dmarc_compliant_from=On,强制设置为统一的邮件发信账号。
四、DMARC Policy Reject
问题故障:
发信后返回"550 DMARC check failed"代码,即DMARC电子邮件安全协议验证失败。
解决方法:
在Config.ini.php中开启force_default_envelope_sender,具体代码:
force_default_envelope_sender=On
default_envelope_sender=a@a.com
force_dmarc_compliant_from=On五、发信后邮件被进入垃圾箱
问题故障:
Email发送成功,但用户收不到,检查后发现邮件被服务商自动列入了垃圾箱。具体原因包含:
1.邮件未配置SPF
2.未配置DKIM。
3.未配置DMARC。
4.服务器IP信誉差。
4.使用不安全的VPS发信被拦截。
解决方法:
1.使用推荐的SPF记录。
v=spf1 mx include:_spf.google.com ~all2.正确设置DKIM。
default._domainkey3.开启DMARC
记录名称:_dmarc
记录类型:TXT
记录值:v=DMARC1; p=none;六、Gmail收不到信
问题故障:
国内邮箱能收到发送的邮件,Gmail收不到,原因可能因为Gmail在2024年后对接收邮件严格过滤,要求SPF、DKIM、DMARC全部正确设置。
解决方法:
开启发信邮箱的SPF、DKIM、DMARC、PTR等全部配置。
七、Gmail能收到,国内邮箱收不到
问题故障:
OJS发送的邮件Gmail可以收到,但国内无法收到,包括未接收邮件、邮件被拒、邮件进入垃圾箱等。该问题一般是由于发信内容的合规性引起的,国内邮件服务商自带反垃圾系统,对发送和接受两端的邮件内容审查较为严格,同时如果邮件内容中如果包含相关敏感词、风控词等关键字的话,也会拒收。
解决方法:
1.发信端可以换Gmail、Microsoft Outlook邮箱试一下。
2.如果发信端使用国内邮箱服务商,则建议使用收费企业邮箱,不建议使用免费邮箱。
3.对发信内容进行仔细审查,确认发信内容是否包含敏感词。
八、OJS主动邮件可以发送,但通知邮件不发送
问题故障:
比如在对OJS配置好Email发信功能后,通过主动邀约、找回密码等场景进行邮件发送测试,均可正常发送和接收,但在OJS实际运行过程中,部分通知邮件系统不发送。
解决方法:
1.检查OJS的服务器的Cron任务是否启用并运行。
2.检查OJS的定时任务是否开启。
3.升级OJS系统至最新版本。
九、OJS邮件发送很慢或卡死
问题故障:
OJS可以正常发送邮件,但有时很慢,要等待很久才能收到,或在发送的过程中系统卡死。
解决方法:
1.检查OJS邮件配置的SMTP信息是否正确。
2.检查服务器防火墙是否开启。
3.检查服务器的流量是否有被限制。
4.检查服务器配置,如果服务器硬件配置过低的话,在高负载时调用发信服务会进入队列等待,长时间未执行会超时卡死。
5.使用收费企业邮箱服务。
十、批量邮件发送时失败
问题故障:
在OJS系统中进行邮件批量发送时,返回"Too many messages"错误,如给800个作者、1000个审稿人发送通知时发送失败的情况。这种情况一般是由于发信端邮件的SMTP限制引起的,如QQ邮箱,免费邮箱限制每天发信数量最多为500封。
解决方法:
1.更换收费企业邮箱。
2.使用专业的邮件发送服务,如Amazon SES、Mailgun、SendGrid、Postmark等。
十一、OJS升级后邮件发送失败
问题故障:
OJS以前可以正常发送邮件,但升级后无法使用Email功能,发信失败。
解决方法:
检查Config.ini.php,确认Email模块是否被修改,是否重置,需重新配置Email发信账号信息。
十二、SMTP连接失败
问题故障:
配置好Email发信账号信息后,提示SMTP连接失败。
解决方法:
1.检查服务器防火墙是否限制了25、465、587等发信端口。
2.检查云服务器是否拦截了25、465、587等端口,如有拦截则需要打开上述端口。
3.检查服务器是否能正常连接公网,是否可以和公网通信。
十三、OJS部分邮件发送失败
问题故障:
Email发信配置正常,邀约、找回密码等邮件均可正常发送,但如审稿通知、作者需修改稿件的通知无法发送。这种故障一般是因为OJS系统的默认邮件模板被修改,且修改错误,系统报错。因为OJS系统的邮件模板并非纯文字内容,而是包含了大量的自带参数变量,参数变量的填写错误、代码符号的错误,都会导致OJS系统在发信时无法正确读取邮件模板,从而无法发信。

解决方法:
1.检查OJS的邮件发送模板,确认代码参数正常无误。
2.如果检查模板后还不能发送,则可以对OJS的邮件模板重置,重置为默认信息。
全文总结
OJS期刊管理系统是一款强大的学术软件,支持期刊管理、投稿、同行评审等功能,自带在线编审工作流系统,每一个工作节点都会有邮件通知相关角色。但是在使用的过程中,因为OJS是调用邮件服务商自身的接口进行发信,因此大部分的邮件发送故障都是因为邮件服务商的信息设置不正确导致的,包括SMTP信息配置错误,发信账号和密码配置错误,邮件服务商未开启第三方客户端发信服务、邮件服务商发信限制等。遇到这种故障,只要仔细检查邮件服务商相关的信息配置,基本能解决大部分的发信问题。
同时,OJS系统自带邮件模板模块,大部分邮件发送内容,都是读取邮件发送模板,自动替换相关参数变量(如期刊名称、作者姓名、评审人姓名、稿件名称)等,邮件模板支持编辑和修改,如果由非专业技术人员修改,极容易引起邮件模板的相关参数错误,导致OJS邮件无法发送。所以在修改邮件模板之前,一定要对默认的邮件模板内容进行备份,当出现故障时可以还原。
丁老师个人建议,OJS系统的邮件模板其实已经非常的标准,符合学术业界的话术规则和邮件礼仪,绝大多数情况下,是无需对邮件模板进行修改的,直接使用即可。
丁老师从事学术软件研发十余年,对OJS期刊管理系统有着多年的使用和开发经验,先后对OJS系统开发出了多款出版社功能定制版和相关插件。如果你也在使用Open Journal Systems期刊管理系统,如果也遇到了邮件发送的相关问题,可以联系丁老师协助解决。同时也欢迎学术界的各位作者、学者、同行,针对学术软件信息化进行交流和咨询。
最近有一个同学,他们出版社使用的是3.3.0.13版本的OJS系统,最近自己在升级到3.5时,出现了错误,并且之前的数据全部丢失了,人都快吓哭了,联系丁老师进行了紧急修复。那么,是什么原因导致了OJS升级失败,如果遇到这种情况,又该怎么...
OJS系统全称为Open Journal Systems(开放期刊管理系统),使用OJS系统可以对建立并管理多个期刊杂志,作者可以期刊进行论文投稿,在投稿后,有同行评审功能,最终将文章发布。无论是期刊还是发布的文章,都支持被收录进Goo...
很多做期刊的出版社客户都在问,OJS系统投稿时可以添加自定义字段吗?如何增加自定义字段呢?比如在投稿时,想增加一个文章类型的选项,该怎么做呢?OJS系统投稿时表单增加自定义字段效果图(增加了文章类型选择字段)丁老师来告诉你哈,首先OJS...
OJS期刊管理系统,导航栏可以在后台dashboard中自定义添加,如实现外部链接、自定义页面、二级菜单功能等(如图)。其中,OJS系统的导航菜单,也分为两种:一、OJS网站首页导航菜单。即OJS的网站首页(期刊索引页),相当于网站主页...