OJS Email Not Sending to Reviewers: Step-by-Step Troubleshooting Guide

Introduction

Is your OJS website failing to send email notifications to reviewers? This can stall the entire peer review process. When invitation and reminder emails never reach reviewers, reviews slow down. Reviewers get confused, and the editorial team grows frustrated.

This issue shows up in different ways. Sometimes you see a loading spinner that never stops after clicking “Send Email.” Other times, you get a generic “unexpected error” message. In some cases, OJS appears to send the email, but it never shows up in the reviewer’s inbox or even their spam folder.

The good news? Most OJS email delivery problems trace back to just a handful of common causes. By checking your SMTP configuration, server logs, email template settings, and mail delivery path, you can find the root cause. Better yet, you can fix it without putting your journal data or production setup at risk.

Problem Overview

When a journal manager or editor tries to email a reviewer — whether it’s a review invitation, a reminder, or a manual message from the Submissions page — OJS depends on the email delivery system configured in your installation. If that system is misconfigured, incompatible, or blocked at the server level, the email either never leaves OJS or never reaches the reviewer.

Here’s a typical scenario. An editor goes to Submissions → View → Reviewers → Email Reviewer. They compose the message and click “Send Email.” Then… nothing. Just an endless loading spinner, no confirmation, and no email delivered. Refreshing the page doesn’t help. The message is simply lost.

This is especially disruptive because it directly blocks the review workflow. Reviewers who never receive the invitation can’t accept or decline. Meanwhile, editors wait for responses that will never come.

Why This Happens

OJS doesn’t send emails directly to reviewers. Instead, it hands the email off to a delivery mechanism — usually an SMTP server, a local sendmail program, or PHP’s built-in mail function. If any link in this chain breaks, the email fails silently. Sometimes it just returns a vague error in the browser.

Several things commonly break this chain. Incorrect SMTP credentials are one culprit. Port or encryption mismatches are another. Server firewall blocks, email template variable problems, and PHP configuration limits can also cause failures. In some cases, the hosting environment itself restricts outbound email delivery, or it requires authentication settings that aren’t reflected in the OJS configuration file.

What makes this tricky to diagnose? OJS often shows only a generic “An unexpected error has occurred” message, or just an endless spinner. Meanwhile, the real cause sits buried in the PHP error log on the server.

Common Causes

Here are the most frequently reported causes of OJS email notifications not sending to reviewers:

  • Incorrect SMTP server address or port — The SMTP hostname or port number in config.inc.php doesn’t match what the email provider requires.
  • SMTP authentication failure — The username, password, or authentication method (LOGIN, PLAIN, etc.) is wrong or unsupported by the mail server.
  • Encryption mismatch (SSL vs TLS) — The SMTP port expects different encryption than what OJS is configured to use.
  • Firewall or hosting provider block — The host blocks outbound SMTP connections on common ports, or requires mail to go through a specific relay.
  • PHP mail function misconfiguration — When default = mail is used instead of SMTP, the local sendmail setup may not be configured properly.
  • Missing or broken email template — Reviewer templates may have missing or incorrect variables, which can cause the send attempt to fail.
  • Envelope sender or DMARC issues — An incorrect default_envelope_sender or DMARC setting can cause recipient servers to reject the message.
  • PHP error logging not enabled — Without logs, the real cause stays hidden, since OJS can’t display detailed errors in the browser.

Troubleshooting Steps

1. Check the PHP Error Log First

The message OJS shows you is usually vague — just a spinner or a brief “unexpected error” popup. But the real error? The PHP error log almost always records it.

Look for the PHP error log in your hosting control panel, or check common server locations such as the OJS directory, the cache/ folder, or the server’s PHP log path. Can’t find it? Contact your hosting provider and ask where they log PHP errors for your account.

When the error log shows connection refused, authentication failed, timeout, or SMTP-related errors, the details will show you which part of the email chain broke.

No log file at all? Then check whether your hosting configuration enables PHP error logging. Without it, diagnosing email problems becomes much harder.

2. Verify SMTP Configuration in config.inc.php

Open your OJS config.inc.php file and locate the [email] section. Confirm that every setting matches your email provider’s requirements.

Key settings to verify:

  • default = smtp — Ensure OJS is set to use SMTP if you intend to use an external mail server.
  • smtp_server — The correct hostname of your SMTP provider, such as smtp.hostinger.com or your organization’s mail server.
  • smtp_port — Most providers use port 587 for TLS or port 465 for SSL. Using the wrong port is a common cause of delivery failure.
  • smtp_secure — tls for port 587, ssl for port 465. These must match.
  • smtp_auth — Should be enabled (On) with correct smtp_username and smtp_password.
  • default_envelope_sender — Set this to a valid email address from your domain. Incorrect envelope sender can cause recipient rejection.

After making changes, test by sending an email from OJS. If the issue persists, move to the next step.

3. Test Email Delivery Outside OJS

Before assuming the problem is inside OJS, verify that your SMTP credentials and server settings work independently.

Try sending an email using the same SMTP hostname, port, username, and password from a standalone email client or through a PHP test script on the same server. If the email also fails outside OJS, the issue is at the server or hosting level — not in your OJS configuration.

If the email works outside OJS but fails inside OJS, the problem may relate to PHP extensions, OJS email templates, or OJS version compatibility with your PHP version.

4. Confirm OJS and PHP Version Compatibility

OJS 3.5 requires specific PHP versions and server software. Check the official PKP documentation for the PHP version supported by your OJS release. Using an unsupported or outdated PHP version can cause email and other features to behave unexpectedly.

Also confirm that the required PHP extensions for email delivery are enabled in your hosting environment — particularly openssl for encrypted SMTP connections and sockets if required by your SMTP library.

5. Check Server Firewall and Hosting Restrictions

Some shared hosting providers block outbound connections on common SMTP ports by default. This means OJS may be correctly configured but the hosting firewall prevents the connection from ever reaching the mail server.

Contact your hosting provider and confirm whether outbound SMTP connections on port 587 or 465 are allowed. Some hosts restrict mail delivery to their own mail servers or require a specific relay configuration. If your host blocks these ports, you may need to switch to default = mail (using sendmail) or use a different SMTP relay allowed by the hosting environment.

6. Review Email Templates for Missing Variables

OJS email templates for reviewers include variables such as reviewer name, submission title, and review due date. If a template contains a broken or missing variable, it can cause the email send attempt to fail silently.

Go to Settings → Workflow → Emails in the OJS dashboard and review the reviewer invitation and reminder templates. Look for any custom variable placeholders that may have been incorrectly typed or removed. Reset the template to the default if unsure, then test the email sending again.

Recommended Solution

The safest approach to resolving OJS email notification not sending to reviewers follows this order:

  1. Enable and check the PHP error log. Without logs, you are guessing. The error log will usually tell you whether the problem is an SMTP connection failure, authentication rejection, timeout, or PHP-level error.
  2. Verify and correct the SMTP settings in config.inc.php, paying close attention to port, encryption, and authentication.
  3. Test email delivery outside OJS to isolate whether the issue is with OJS or with the hosting/server layer.
  4. Confirm hosting-level email restrictions with your provider and adjust OJS settings accordingly — for example, switching from SMTP to sendmail if SMTP ports are blocked.
  5. Review and reset email templates if the log points to a template-related error.
  6. Test on a staging copy of your OJS installation before applying changes to the production journal site. Always back up your config.inc.php file before making changes.

For most OJS installations, correcting the SMTP configuration and ensuring error logging is active resolves the email delivery issue without requiring deeper server-level changes.

What to Avoid

  • Don’t edit OJS core files to fix email delivery. The real problem is almost always in configuration or hosting, not the source code.
  • Avoid repeatedly changing SMTP settings without checking the error log first. Each blind change pushes you further from the real cause.
  • Never assume the reviewer received the email just because OJS shows no error. Confirm deliverability by sending a test to your own address.
  • Steer clear of disabling DMARC enforcement or TLS encryption just to make email “work.” This can hurt deliverability or expose your credentials.
  • Always back up your files before making server-level changes — skipping this step is risky.

When to Ask for Technical Help

If after checking the PHP error log you still cannot identify the cause, or if the log shows errors you do not understand, it is time to involve someone with server access and technical experience.

Ask for help when:

  • The PHP error log is not accessible despite repeated attempts and your hosting provider cannot help.
  • SMTP credentials work outside OJS but fail inside OJS without a clear error.
  • You have confirmed correct SMTP settings but emails still do not send.
  • The error log shows PHP extension or library issues that require server-level installation.
  • Your hosting provider has confirmed outbound port restrictions and you need help setting up an alternative delivery method.

FAQ

Why does OJS show a loading spinner that never stops when sending reviewer emails?

Usually, this means the server-side email process is failing without returning a clear response to the browser. The real cause — like a connection timeout, SMTP authentication failure, or PHP error — typically shows up in the PHP error log.

Can I fix this by changing the SMTP port from 465 to 587?

Maybe. Port 587 uses TLS, while port 465 uses SSL — they’re different entry points. Your provider expects one specific combination. If you’re using the wrong port for your encryption setting, switching to the correct pair can solve it. Check your provider’s documentation to confirm.

What should I do if there is no PHP error log file?

If no error_log file exists in your OJS directory or server path, PHP error logging probably isn’t enabled. Contact your hosting provider and ask them to enable it, or ask where errors are recorded instead. Without a log, diagnosing email issues becomes much harder.

Does this issue only affect OJS 3.5?

No — email delivery problems can happen in any OJS version. That said, OJS 3.5 changed how email is handled, and some users report new issues after upgrading. Either way, the same approach applies: check SMTP settings, PHP logs, and hosting restrictions.

Should I use SMTP or the PHP mail function for OJS?

SMTP is generally more reliable, since it connects directly to a dedicated mail server with proper authentication. PHP’s mail function relies on the server’s local sendmail setup, which may lack proper headers or authentication. If your host supports it, use a properly configured SMTP service for production journals.

Conclusion

OJS email notifications not sending to reviewers is frustrating, but it’s usually solvable with methodical troubleshooting. The most common causes are incorrect SMTP settings, hosting-level restrictions, or PHP errors that only appear in the server log.

The key? Find the real error first. That almost always means checking the PHP error log. From there, correct the configuration one step at a time. Guessing, or changing multiple things at once, usually makes the problem harder to trace.

Need Help With Your OJS Journal?

If your journal uses OJS and you need help with email configuration, SMTP setup, server troubleshooting, upgrades, or ongoing maintenance, the Open Journal Theme team can help review the issue further and recommend a practical path forward. Explore our OJS services, OJS hosting, OJS upgrade services, and OJS support.

References

Tags :

About the Author
user-avatar

Hello! I'm Ghazi, im OJS Technical Support from Openjournaltheme. Have a passion for linux, helping solve publisher problems related to the use of OJS, OMP and Eprints.

Leave a Comment

Your email address will not be published. Required fields are marked *

Open Journal Theme

Need More Services  or Question?

Openjournaltheme.com started in 2016 by a passionate team that focused to provide affordable OJS, OMP,  OPS,  Dspace, Eprints products and services. Our mission to help publishers to be more focus on their content research rather than tackled by many technical OJS issues.

Under the legal company name :
Inovasi Informatik Sinergi Inc.

Secure Payment :

All the client’s financial account data is stored in the respective third-party site (such as Paypal, Wise and Direct Payment).
*Payment on Credit card can be done by request
Your financial account is guaranteed protection. We never keep any of the clients’ financial data.

← Index