Server doesnt allow all domains to sent mail

Version: 3.1.0.1

I’m having problems with platform notification emails. When the e-mail is forwarded by the same domain on which the website is hosted, the e-mail works. However, when the user assigns a user’s tamplate email, the server blocks email from other domains.Is there any possibility of forwarding all e-mails from one e-mail where the platform is hosted?

The server is returning the following message in the log:
“mod_fcgid: stderr: SERVER → CLIENT: 550 5.7.1 Sender domain not allowed. Please read: http://dhurl.org/20b D157, referer:”

Hi @cauehm

This is due to relaying is denied on your mail transfer agent software.

The OJS configuration file config.inc.php is the place where you can make necessary settings.

You should enable smtp by uncommenting the lines, enter server settings, username, password, then set;

allow_envelope_sender = On

default_envelope_sender = my_address@my_host.com (put a real email address belonging to that domain)

force_default_envelope_sender = On

force_dmarc_compliant_from = On (Enable if dkim, dmarc, dnssec and other necessary software are installed, and if you want to mark outgoing mails)

Regards,

Tks for reply @drugurkocak

I already did it, and Im still having troubles.

I didnt find the “force_dmarc_compliant_from”. Is that about the version? I’m using 3.1.0.1.

The config data:

[email]

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


; SMTP server settings
smtp_server = ssl://homie.mail.dreamhost.com
smtp_port = 465

; Enable SMTP authentication
; Supported mechanisms: ssl, tls
smtp_auth = ssl
smtp_username = contato@pensamentocontemporaneo.com.br
smtp_password = ***

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

; Default envelope sender to use if none is specified elsewhere
default_envelope_sender = contato@pensamentocontemporaneo.com.br

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

; 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-priveleged 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

And im getting the same return:

stderr: SMTP ERROR: DATA END command failed: 550 5.7.1 Sender domain not allowed. Please read: http://dhurl.org/20b D157, referer: http://www.pensamentocontemporaneo.com.br/index.php/pmtocipt/workflow/index/93/1

Hi @cauehm
Before suggesting to seek support from Dreamhost, please could you check the email of the Primary Contact saved in the Settings → Journal Settings → Contact → Principal Contact.

If saved email is from another domain, please generate a new email account for Principal contact under the hosting (dreamhost) domain, and save it there.

If already so, you may check dreamhost help page at https://help.dreamhost.com/hc/en-us/articles/215036118 and follow their directions.

Update: please could you ask the support staff if that smtp server belongs to your hosting account since the company has multiple email servers, each for a geographical region.
https://help.dreamhost.com/hc/en-us/articles/214918038-Email-client-configuration-overview
Regards,

@drugurkocak tks again.

The primary contact is functioning accordingly. When the email thanking the submission occurs, the email works fine. The problem is when the publisher’s email, for example, is from another domain. In this sense, what I am not getting is to force the sender so that the email is the host’s email.

I imagine I found the problem, but I would still need help.

The version I have installed is 3.1.0.1. I need to upgrade to a version higher than 3.1.2, I think.
This link says it: Email

“DMARC solves this by putting the user’s email in the reply-to: address, and and putting the default_envelope_sender in the From: field. As of OJS 3.1.2, you can configure this via two new parameters in your config.inc.php file, namely force_dmarc_compliant_from and dmarc_compliant_from_displayname. (If you are on OJS 3.1.2+ and don’t see those parameters in your live config file, you will want to review your config.TEMPLATE.inc.php file and move them over as they appear there.)”

My current configuration file does not have DMARC options on the config file.

How could i update de 3.0.1 to 3.1.2+?

Hi @cauehm

Yes I think, you need exactly that function.

; 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.

The docs folder contain upgrade file that contain all upgrade directives.
There are even some videos on Youtube

But, you should take a complete backup (both database, submission files and ojs system files) before you begin. That is critical.
Good luck,

Is the process of upgrading from 3.0.1 to 3.1.2 different?

Hi @cauehm
Your OJS version for the aforementioned journal seem to be Version: 3.1.0.1.
Although you may apply the same upgrade procedure to upgrade every OJS version, I suggest you to look at the security warnings and upgrade to latest OJS version.
But if you use some special plugins, than you may prefer to go on version 3.1.x.

As I read from previous posts, it might be better first upgrade from Version: 3.1.x → 3.2.x
Then, from version 3.2.x → 3.3.0.6

https://pkp.sfu.ca/ojs/ojs_download/

If you get some SQL error messages, you might need to note them, search for a possible fix, and reapply the database upgrade after restoring the entire database from backup (delete all existing tables of OJS database).
regards,