This question has been flagged
13 Replies
222704 Views

I cannot send outgoing emails with the microsoft office 365 email server. I configured an IMAP & SMTP Client with Thunderbird, working perfectly. I configured OpenErp with a Google account - works perfectly --> the only emailserver not working seems to be office 365, but as a standalone client using smtp (not native exchange protocol) I guess the issue is not at the Microsoft offering.

Please help, attached my log file error message I get when trying to send an email.

OpenERP Server 7.0-20131103-002534:DBprod:ERROR:openerp.addons.base.ir.ir_mail_server:Mail Versand schlug via SMTP Server 'smtp.office365.com' fehl.#012SMTPDataError: 550#0125.7.1 Client does not have permissions to send as this sender#012Traceback (most recent call last):#012 File "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_mail_server.py", line 463, in send_email#012 smtp.sendmail(smtp_from, smtp_to_list, message.as_string())#012 File "/usr/lib/python2.7/smtplib.py", line 737, in sendmail#012 raise SMTPDataError(code, resp)#012SMTPDataError: (550, '5.7.1 Client does not have permissions to send as this sender')

OpenERP Server 7.0-20131103-002534:DBprod:ERROR:openerp.addons.mail.mail_mail:failed sending mail.mail 46#012Traceback (most recent call last):#012 File "/usr/lib/pymodules/python2.7/openerp/addons/mail/mail_mail.py", line 308, in send#012 mail_server_id=mail.mail_server_id.id, context=context)#012 File "/usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_mail_server.py", line 476, in send_email#012 raise MailDeliveryException(_("Mail delivery failed"), msg)#012MailDeliveryException: (u'Mail Auslieferung fehlgeschlagen', u"Mail Versand schlug via SMTP Server 'smtp.office365.com' fehl.\nSMTPDataError: 550\n5.7.1 Client does not have permissions to send as this sender")

Avatar
Discard
Best Answer

Hi Guys,

Many our customers are asking the same question. Here is guide on how to integrate the Odoo ERP with Office 365 mail server ( https://ventor.tech/guides/how-to-configure-emails-to-work-with-office-365-and-odoo/ ). It has been verified on many customers already, and all screenshots are from latest Odoo (11 at the moment of writing) and latest version of Office 365. 

At a glance what you should do:

- Configure Outgoing mail Server in Office 365 as Relay Server

- Configure Catchall Email in Office 365

- Install Odoo module to inform users that they used the wrong email

- Configure Outgoing Mail Server in Odoo

- Configure Incoming Mail Server in Odoo

- Test Odoo ERP Emailing Setup

 

Avatar
Discard

Dear,
Using ODOO 15 CE

I followed the instruction but unfortunately not able to send email or message with Office 365

Mail delivery failed via SMTP server 'None'

Thanks if you could highlight me

We updated our article just the previous month. We used it to configure Odoo for our customers. So I'm sure smth was missed during configuration.

If you have issues, please, record a video how problem is reproduced and send it to our support@ventor.tech mailbox.

Best Answer

As Eladio Abquina said, it works... Finally. 

In my case, company email and admin email are different.  When I used google admin id with smtp.gmail.com, odoo sends any email whatever the current logged account. However,  google has a limitation to use smtp email, 100 per day. 

Strangly, when I use general smtp outgoing settup which are smtp.office365.com port:587 or 25 email admin id and password, it worked only on the admin account.  I searched and tried all ,but only Eladio Abquina's suggestion is working.

I am going to add on his explanation....I used option3>step-by-step configuration instructions for SMTP relay from the link (https://support.office.com/en-us/article/How-to-set-up-a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-c805d654b4c4)

which are:

1. on office 365 >admin>domain>click primary>Exchange Online>

-copy mx domain address (which is mydomain_com.mail.protection.outlook.com)

-edit the next line  and put your odoo ip address(eg.10.10.10.10)

                v=spf1 ip4:10.10.10.10 include:spf.protection.out...

2. back to admin on office 365 >admin>exchange>mail flow>connector>add

from Myorganization's email server to office 365

put the odoo's ip address

3.on odoo

-General set up >  Uncheck "Use external authentication providers(OAuth)"

- outgoing smtp

Smtp server: mx endpoint of domain which copied on step1.

port: 25

security: TSL(STARTTLS)

no username or password. 

4. odoo>developer mode>setting>parameters >remove catchall  and domain

Hope it helps.

Avatar
Discard

Hi Ji Lee,

Can you please explain in detail about these steps? I am unable to find some of these options in Office 365 which you mentioned and I can't send mails from Odoo:

1. On Office 365 >admin>domain>click primary>Exchange Online> Copy the mx domain address (which should look something like: mydomain_com.mail.protection.outlook.com). This is the name of my outgoing SMTP server for Odoo - to be pasted later

2. Copy the recommended SPF rule and add in my Odoo server's IP, then add SPF record to my DNS records

v=spf1 ip4:10.10.10.10 include:spf.protection.out...

Please help me. I am stuck in Office 365. Thanks in advance.

Hi. Mohit.. sorry what is" recommended SPF rule" you copied? the step 1 is MX at Exchange Online, and step 2 is TXT. you should just edit the TXT line. not add but edit.

Why is none of this explained in the official docs, I'm looking for this info but instead of Office 365 I need a guide that explains how to set this up correctly using google workspace. I'm frustrated the officlal docs are not having this properly explained

Best Answer

As a workaround, I changed the Outgoing settings to just set-up SMTP Relay for Office365

hostname yourdomain-com.mail.protection.outlook.com  

port            25

security      None

Username  <blank>

Password    <blank>

Worked like a charm!

Make sure to set-up your connector as described here:

https://support.office.com/en-us/article/How-to-set-up-a-multifunction-device-or-application-to-send-email-using-Office-365-69f58e99-c550-4274-ad18-c805d654b4c4

Avatar
Discard
Best Answer

Hi, so I found the solution that worked for me on this site:

https://support.office.com/nl-nl/article/Een-multifunctioneel-apparaat-of-een-toepassing-instellen-voor-het-verzenden-van-e-mail-via-Office-365-69f58e99-c550-4274-ad18-c805d654b4c4?ui=nl-NL&rs=nl-NL&ad=NL


Do not forget to add the SPF record in your DNS to mak sure your mail does not end up in the Spam-mailbox.

Avatar
Discard
Best Answer

I would suggest you to recheck the Outgoing email server settings. Make sure the following:

  • Company email address and outgoing email server email address should be same.

  • The alias domain should be blank

  • priority should be less than the SMTP server - localhost, i.e. 10

Avatar
Discard
Author Best Answer

ok - got a little bit closer. it works with a workaround - but unsure if this is the wanted design?

openerp sends the email under the emailadress which is registered in the user profile who logs into the system. (see /usr/lib/pymodules/python2.7/openerp/addons/base/ir/ir_mail_server.py, line 301:

    email_from = email_from or tools.config.get('email_from')
    assert email_from, "You must either provide a sender address explicitly or configure "\
                       "a global sender address in the server configuration or with the "\
                       "--email-from startup parameter."

how can I now configure multiple users in the outgoing mail server when the SMTP server needs authentication? Is there a workaround? It would be nice having the email-adress and password configuration dialog in the user preferences?

Avatar
Discard

It has been working fine for me for about 4 months. I started having this problem 2 days ago. None of my settings in OpenERP have changed. Something must have changed at outlook.office365.

Okay, so i tried a different provider (godaddy). The error message was similar, but gave some insight: Sender Rejected - MAIL FROM must be a valid domain.\nadmin@xxx.xx.xxxx.xx. Turns out I only needed to change the alias domain from the default (ip address) to my email domain name, on the General Settings. Now smtp through office365 works again. Not sure why it worked before.

Best Answer

We had the same problem and we solved with some microsoft support.

Our Environment:

  • EC2 in AWS with dinamic IP

  • Odoo 9

  • Office365 SMTP

  • DNS Host in GoDaddy

I'm gonna take some steps from ji lee previous post that was a very good help!


On Office365 Admin console

 Go to Configurations>domain>click primary>Exchange Online>

  1. Copy mx domain address (which is mydomain_com.mail.protection.outlook.com)

    1. Edit the next line and put your odoo ip address(eg.10.10.10.10)  (v=spf1 ip4:10.10.10.10 include:spf.protection.out...) In our case we tried also use ip4:mydomain.name and a:mydomain.name because as we are using AWS is preferable to use the domain, but microsoft support team told us that only works with static IP. In our case we set the public IP of the EC2 server.

    2. In our case the DNS record update was done in the GoDaddy admin console for DNS management; and we never saw the update in the office365 console. We checked the that the change was applied by looking at some DNS testing service like http://mxtoolbox.com/ and looking for the SPF Record Lookup

  2. back to admin on office 365 >admin>exchange>mail flow>connector>add from Myorganization's email server to office 365 put the odoo's ip address.


On odoo

  1. Go to General set up > Uncheck "Use external authentication providers(OAuth)" (In odoo v9 is not needed) 

  2. set outgoing smtp Smtp server: mx endpoint of domain which copied on step1.

  3. set port: 25 security: TSL(STARTTLS)

  4. no username or password.

  5. odoo>developer mode>setting>parameters >remove catchall and domain


Last Step

At this point we have not receiving mail yet, it seems like a unblocking of the email accounts is needed. Go to https://sender.office.com. There you put the user account (myuser@mydomain.name) and the IP again. An email is send to the email account (inbox) for unloking the accounts. From that moment it worked for us.

NOTE: the Odoo's user login/ email have to be a valid email account of that domain in office365. 


Avatar
Discard
Best Answer

Open the settings for your email in the application or device you are using.
Locate the outgoing SMTP server and its settings.
Check the current outgoing port and change it to 26 or 587.
Make sure any username and password fields are filled in if shown.
Save changes and test.

Greetings,
Peter

Avatar
Discard
Best Answer

I have same problem with office365, 

SMTPDataError:550

i have changed alias on General Settings into our own domain name 

Outgoing set up all ready test connection successfully

imcoming set up confirmed

still not able to send email and received email


SMTPDataError: 550

 

Avatar
Discard
Best Answer

Setup Office 365 SMTP outlook.office365.com 995 SSL/TLS fails -> Client does not have permissions to send as this sender

1. In Odoo setup a SMTP server using your mail exchange (MX) endpoint record with port 25 no security

2. In Office 365 configure a connector so Odoo can send email to Office 365. Office 365 can then relay email to your organization mailboxes and to external recipients. Office 365 > admin > exchange > mail flow > connectors: configure a connector for your Odoo ("email") server with the internet connecting IP address (CIP: [IP address] from the internetheader the email). In my testcase the IP address of the router connecting to the internet. 

Avatar
Discard
Best Answer

Hi!

So my fix is change code in /opt/odoo/odoo-server/openerp/addons/base/ir/ir_mail_server.py

You need to change "smtp_from" to "smtp_user" and also replace

after this:

If "mail.catchall.alias" is not set it defaults to "postmaster-odoo".

this:

default='postmaster',

#Because you have "postmaster", but you don't have "postmaster-odoo" on your own provider.

Hope it helps!

Kris

Avatar
Discard

Please explain how to set "mail.catchall.alias"

Also, how do I disable "Sub Addressing"? (appending a Plus Sign plus paremeter values

Best Answer

No answer as I don't have enough Karma yet.  Just a note to say Ji Lee's method worked for me perfectly. 

Thank you for the steps.

Avatar
Discard
Best Answer

I did as Manish said, and it works.

Just beware that the blank alias domain: that's on the General settings page.

Thanks!

Avatar
Discard