At OJS Services, we provide installation, upgrade, hosting, and technical support for Open Journal Systems (OJS) across many countries.
Working with hundreds of journals hosted on different servers — Bluehost, GoDaddy, HostGator, Hetzner, IZAhost, and others — allows us to observe version-specific behaviors very closely.
Recently, after many OJS journals upgraded to OJS 3.4, one issue became increasingly common:
Emails appear to be sent successfully, but never reach the recipient.
The Root Cause
With OJS 3.4, PKP introduced a major change to the email system.
The old PHPMailer library was replaced by Symfony Mailer — a modern, secure framework that enforces strict SSL/TLS and authentication rules.
Unfortunately, most shared hosting providers (especially Bluehost, GoDaddy, HostGator) apply strict limits on outgoing SMTP connections from PHP applications.
As a result:
- SMTP authentication succeeds,
- OJS reports “Message sent successfully,”
- but the email quietly disappears in the Exim mail queue.
Meanwhile, when sending through webmail (Roundcube), everything works perfectly — because webmail doesn’t use SMTP.
It uses the local sendmail transport instead.
The Reliable Fix: Use Sendmail Instead of SMTP
The simplest and most reliable fix is to switch OJS from SMTP to sendmail.
This makes OJS send mail directly through the local mail transport agent (Exim/Postfix), bypassing all TLS and firewall restrictions.
Open your config.inc.php file and edit the [email] section like this:
[email]
default = sendmail
sendmail_path = "/usr/sbin/sendmail -t -i"
; SMTP settings can stay for reference but will not be used
smtp = On
smtp_server = box1234.bluehost.com
smtp_port = 587
smtp_auth = tls
smtp_username = [email protected]
smtp_password = yourPassword
After saving these settings, OJS will start delivering emails instantly — using the same internal channel that webmail already relies on.
Why This Difference Occurs
In OJS 3.3 and earlier versions, both SMTP and sendmail behaved similarly because PHPMailer handled both transports loosely.
But starting with OJS 3.4, Symfony Mailer enforces strict certificate validation and secure transport layers.
On shared servers, these extra security layers often conflict with provider-side restrictions.
The result: the connection appears successful, but the message is dropped.
sendmail, on the other hand, talks directly to /usr/sbin/sendmail on the same server.
It stays local, avoiding SSL negotiation entirely — which makes it both faster and more compatible with cPanel-based servers.
Field-Tested Experience
We first confirmed this issue with several clients hosted on Bluehost and GoDaddy.
Even with valid SPF, DKIM, and correct SMTP credentials, emails were not reaching inboxes.
After switching to sendmail, all notifications — user registration, password reset, submission acknowledgment — started working immediately.
We later verified the same behavior on HostGator, GoDaddy and Namecheap servers.
In OJS 3.4, sendmail is consistently more reliable than SMTP on shared environments.
Technical Note
This isn’t a new feature — it’s the default configuration that OJS has always recommended.
In the template file config.TEMPLATE.inc.php, the line default = sendmail has been there for years.
However, many users switched to SMTP because it “sounded more professional.”
After the 3.4 update, our tests confirm that on shared hosting, sendmail is the safer choice.
Final Recommendation
If you’re using OJS 3.4 and your emails appear to send but never arrive:
- Even if SPF, DKIM, and PTR records are correct,
- Even if your test email shows “Sent successfully,”
👉 Switch to sendmail first.
In most cases, that alone solves the issue.
Lessons From Experience
At OJS Services, we provide direct technical support to many academic journals every week.
Our observation is simple: most OJS email problems aren’t caused by the software itself, but by how different hosting providers handle outgoing mail.
Our job is to find the balance between both worlds — reliability and compatibility.
That’s why we now apply this rule for all new OJS 3.4 and 3.5 installations:
“Use sendmail for shared hosting. Use SMTP for dedicated servers.”
It’s simple, stable, and future-proof.



Comments are closed