[FIX] l10n_it_edit: use pec addresses to test mail server

WHY: PEC server rejects default addresses, so you cannot test connection

---

opw-2371431

closes odoo/odoo#65516

X-original-commit: 876d3b3b8cf9f91a3609871f69b3ce1186d71ac6
Signed-off-by: Ivan Yelizariev // IEL <yelizariev@users.noreply.github.com>
This commit is contained in:
Ivan Yelizariev
2021-02-04 09:54:03 +00:00
parent bc8a5dc394
commit b09b0f7991
2 changed files with 22 additions and 4 deletions
@@ -359,6 +359,19 @@ class FetchmailServer(models.Model):
class IrMailServer(models.Model):
_name = "ir.mail_server"
_inherit = "ir.mail_server"
def _get_test_email_addresses(self):
self.ensure_one()
company = self.env["res.company"].search([("l10n_it_mail_pec_server_id", "=", self.id)], limit=1)
if not company:
# it's not a PEC server
return super()._get_test_email_addresses()
email_from = self.smtp_user
if not email_from:
raise UserError(_('Please configure Username for this Server PEC'))
email_to = company.l10n_it_address_recipient_fatturapa
if not email_to:
raise UserError(_('Please configure Government PEC-mail in company settings'))
return email_from, email_to
def build_email(self, email_from, email_to, subject, body, email_cc=None, email_bcc=None, reply_to=False,
attachments=None, message_id=None, references=None, object_id=False, subtype='plain', headers=None,
+9 -4
View File
@@ -102,16 +102,21 @@ class IrMailServer(models.Model):
"is used. Default priority is 10 (smaller number = higher priority)")
active = fields.Boolean(default=True)
def _get_test_email_addresses(self):
self.ensure_one()
email_from = self.env.user.email
if not email_from:
raise UserError(_('Please configure an email on the current user to simulate '
'sending an email message via this outgoing server'))
return email_from, 'noreply@odoo.com'
def test_smtp_connection(self):
for server in self:
smtp = False
try:
smtp = self.connect(mail_server_id=server.id)
# simulate sending an email from current user's address - without sending it!
email_from, email_to = self.env.user.email, 'noreply@odoo.com'
if not email_from:
raise UserError(_('Please configure an email on the current user to simulate '
'sending an email message via this outgoing server'))
email_from, email_to = server._get_test_email_addresses()
# Testing the MAIL FROM step should detect sender filter problems
(code, repl) = smtp.mail(email_from)
if code != 250: