Email problems with lower roles

We are using OJS 3.1.2.1 and have problems sending emails. We were able to reproduce the problem on different installations.

Basically the sending of emails works (example: welcome mails). Apparently, no user who does not have the permission level “journal manager” can send emails.

Example:
A section manager (permission level “section editor”) can write a message to the authors with the button “notify”. This is not sent as an email. If you try the same with the role “journal editor” (permission level “journal manager”) it works without problems.

Is it a bug or a feature?

Hi @ckreth,

I think I might have had the same issue in the past. Can you please let me know if the email configured in the config.inc.php is the one that journal editor uses?

Regards, Primož

Hi @primozs,

we have not configured any email addresses in config.inc.php.

If we need to do that, where and what do we need to configure?

Hi @ckreth,

I am quite sure you have configured something otherwise there would be no emails… eithr you personaly or someone else. Check the file and see.

Regards, Primož

Thanks for your comment. But we really haven’t configured anything regarding email.
Here is the relevant excerpt from the file:

"
[…]

;;;;;;;;;;;;;;;;;;;;;
; Security Settings ;
;;;;;;;;;;;;;;;;;;;;;

[…]

; A space delimited list of uins to make admin
;implicit_auth_admin_list = “jdoe@email.ca jshmo@email.ca”

; URL of the implicit auth ‘Way Finder’ page. See pages/login/LoginHandler.inc.php for usage.

;implicit_auth_wayf_url = “/Shibboleth.sso/wayf”

;;;;;;;;;;;;;;;;;;
; Email Settings ;
;;;;;;;;;;;;;;;;;;

[email]

; Use SMTP for sending mail instead of mail()
; smtp = On

; SMTP server settings
; smtp_server = mail.example.com
; smtp_port = 25

; Enable SMTP authentication
; Supported mechanisms: ssl, tls
; smtp_auth = ssl
; smtp_username = username
; smtp_password = password

; Allow envelope sender to be specified
; (may not be possible with some server configurations)
; allow_envelope_sender = Off

; Default envelope sender to use if none is specified elsewhere
; default_envelope_sender = my_address@my_host.com

; Force the default envelope sender (if present)
; This is useful if setting up a site-wide no-reply address
; The reply-to field will be set with the reply-to or from address.
; force_default_envelope_sender = Off

; Force a DMARC compliant from header (RFC5322.From)
; If any of your users have email addresses in domains not under your control
; you may need to set this to be compliant with DMARC policies published by
; those 3rd party domains.
; Setting this will move the users address into the reply-to field and the
; from field wil be rewritten with the default_envelope_sender.
; To use this you must set force_default_enveloper_sender = On and
; default_envelope_sender must be set to a valid address in a domain you own.
; force_dmarc_compliant_from = Off

; The display name to use with a DMARC compliant from header
; By default the DMARC compliant from will have an empty name but this can
; be changed by adding a text here.
; You can use ‘%n’ to insert the users name from the original from header
; and ‘%s’ to insert the localized sitename.
; dmarc_compliant_from_displayname = ‘%n via %s’

; Amount of time required between attempts to send non-editorial emails
; in seconds. This can be used to help prevent email relaying via OJS.
time_between_emails = 3600

; Maximum number of recipients that can be included in a single email
; (either as To:, Cc:, or Bcc: addresses) for a non-privileged user
max_recipients = 10

; If enabled, email addresses must be validated before login is possible.
require_validation = Off

; Maximum number of days before an unvalidated account expires and is deleted
validation_timeout = 14

[…]
"

Hi @ckreth,

From your settings:

I can see you don’t have emails configured. So it is not possible that you are getting any email (you mentioned welcome message or users with the journal manager role).
Until the email settings are not configure (and un-commented) the emails don’t work.

Regards, Primož

Hi again,

It is not the problem that no mails are generated at all. It seems to me that phpmail works fine.

By default, PHPMailer will send mail through PHP’s built-in mail() facility. (Manual)

I’ll try to describe the problem again:

  • when I register as a new user, I receive a welcome mail.
  • when I send mails to users as super-admin, the users receive this mail.

But:

  • when I send mails as a journal editor (or a ‘lower’ role), no mails are sent to users.

Dear primozs,

I found the “mistake”.

I used email addresses from mailinator.com for creating dummy users.
OJS does not send emails if you are logged in with such a trash address. And this is okay of course!

Sorry about the confusion,
Many thanks for your help.

Kind regards,
Christian Kreth

This is not specifically OJS, but rather your mailserver or a downstream mail relay.

As you are currently configured, OJS will pass of the mailinator.com addresses as both the sender and recipient, through PHP’s mail() function. It is up to your mailserver to accept and deliver the mail, or to reject it. Many mailservers will decline to deliver mail “from” one domain name if it really is originating from a different domain name. Many more will pass it along, but flag it as suspect or spam.

You can tell OJS to send the mail “from” a trusted address, rather than the user’s address, by setting all of the config.inc.php parameters:

  • allow_envelope_sender
  • default_envelope_sender
  • force_default_envelope_sender
  • force_dmarc_compliant_from

Dear @ctgraham,

many thanks for the explanations!

Kind regards