SMTP avec Office365 ?

Hello

I try to use Office365 as SMTP for discourse. I’m already using this account for my wordpress SMTP so the account is not the problem.

When i try to send a email test, an error message appear

[Sender] 504 5.7.4 Unrecognized authentication type [AM3PR05CA0123.eurprd05.prod.outlook.com]

This is my SMTP config from app.yml

## TODO: The SMTP mail server used to validate new accounts and send notifications
DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: test@example.fr
DISCOURSE_SMTP_PASSWORD: password
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_ENABLE_START_TLS: false 

Any idea how to fix the problem ?

Another config:

## TODO: The SMTP mail server used to validate new accounts and send notifications
DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: test@example.fr
DISCOURSE_SMTP_PASSWORD: password
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_ENABLE_START_TLS: true

I get the following error:

550 5.7.60 SMTP; Client does not have permissions to send as this sender

The problem is from Discourse, because I can test with swaks and it’s working

swaks --to test@example.com --from test2@example.com --server smtp.office365.com --auth login --auth-user test2@example.com -tls

Not Suggesting that You use office365 for SMTP but it seems like DISCOURSE_SMTP_AUTHENTICATION: login isn’t required … maybe try commenting that out and try again with STARTTLS set to True?

Okay the problem is now fixed. Huge mistake from my side : the email from Admin → settings → notification email was not the same from the smtp username.
Maybe a check should be made to prevent user to makes this mistake :face_with_raised_eyebrow:

but it seems like DISCOURSE_SMTP_AUTHENTICATION: login isn’t required

True, the final config

DISCOURSE_SMTP_ADDRESS: smtp.office365.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: test@example.fr
DISCOURSE_SMTP_PASSWORD: password
DISCOURSE_SMTP_AUTHENTICATION: login
DISCOURSE_SMTP_ENABLE_START_TLS: true
4 « J'aime »

Discourse cannot guess what addresses the mail server will deliver for.

4 « J'aime »

Sadly this solution is not working for me (I also tried to escape the password). I tried it with this SMTP setting problem with Office365 - #5 by ianwhite one which is working. But not everybody gets E-Mails… :thinking:

If some people get mail then it’s the fault of office365, or their mail provider. The others should check their spam folder, though if they use a service life office365 it will silently drop mail that it thinks is spam.

I tried it with these settings. In the skipped section in the email tab I can see the following error:

554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied;

Sounds like the address you are sending from is not one that the mail server supports. There is a line at the bottom of app.yml that week let you set the notification address. (you can set it in sure settings if you’re logged in)

2 « J'aime »

Or maybe they have VERP enabled so the email address is replies+{key}@example.com instead of the authorized noreply@example.com That was the issue I’ve faced in past while trying to send mails from my own mail server. It’s usually easy to fix though.

2 « J'aime »

Yes. This worked for me. Two things in the initial setup:

DISCOURSE_SMTP_USER_NAME:
-- AND --
DISCOURSE_NOTIFICATION_EMAIL:

needed to be set to the same email.

1 « J'aime »

Quelques instructions à jour pour ceux qui ont des difficultés avec Office 365 et la livraison directe

  • Accédez au centre d’administration Microsoft
  • Cliquez sur Paramètres, puis sur Domaines
  • Cliquez sur Ajouter un domaine
  • Suivez les instructions à l’écran pour ajouter l’URL de votre forum (exemple : forum:votredomaine.com)
  • Une fois les étapes ci-dessus terminées et le DNS vérifié, vous pouvez maintenant créer une boîte aux lettres en utilisant ce sous-domaine
  • Cliquez sur Utilisateurs, puis sur Utilisateurs actifs
  • Cliquez sur Ajouter un utilisateur
  • Créez la boîte aux lettres pour votre forum (exemple : noreply@forum.votredomaine.com) le domaine de la boîte aux lettres doit correspondre au nom d’hôte à partir duquel le forum s’exécute
  • Cliquez sur Licences et applications
  • Attribuez à cette boîte aux lettres une licence Exchange Online (Plan 1) (limite de 10 000 messages par jour, 30 messages/min). Il est nécessaire d’avoir une licence attachée à la boîte aux lettres pour la livraison directe. Au moment de la rédaction, le coût est de 4,00 USD/mois ou 5,10 CAD | Si vous avez besoin d’une limite plus élevée ou d’une limite de débit plus courte, d’autres plans sont disponibles
  • Cliquez sur Courrier, puis sur Gérer les applications de messagerie
  • Activez le « SMTP authentifié »
  • Cliquez sur Enregistrer les modifications
  • Accédez à votre portail Azure
  • Accédez à votre annuaire actif
  • Sélectionnez Propriétés dans la barre latérale gauche, juste sous Paramètres utilisateur
  • Sélectionnez Gérer les paramètres de sécurité
  • Définissez les paramètres de sécurité sur « désactivé »
  • Cliquez sur Enregistrer
  • Revenez à Utilisateurs > Utilisateurs actifs
  • Cliquez sur Authentification multifacteur
  • Désactivez l’authentification multifacteur sur la boîte aux lettres utilisée

La boîte aux lettres est maintenant prête à être utilisée par votre Discourse.

1 « J'aime »

Définir les paramètres de sécurité par défaut sur « désactivé »

C’était la seule chose qui empêchait l’authentification SMTP…
Je me casse la tête depuis des jours…
Pourquoi Microsoft rend-il les choses si difficiles… ?

La désactivation des paramètres de sécurité par défaut peut ne plus être nécessaire avec l’application de l’authentification multifacteur (MFA). Si vous activez puis appliquez la MFA sur un compte M365, vous pouvez accéder à la page de configuration de la MFA du compte et ajouter un mot de passe d’application à utiliser pour contourner la MFA. J’ai réussi avec un utilisateur disposant d’une licence M365 Business Basic avec l’application de la MFA, l’authentification SMTP et les paramètres de sécurité activés. J’ai juste dû augmenter les délais d’attente d’ouverture et de lecture SMTP avec deux lignes supplémentaires. 30 peut être excessif, mais 5 était insuffisant.

Entrée app.yml fonctionnelle, en septembre 2023 :

  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: user@domain.com
  DISCOURSE_SMTP_PASSWORD: whatever-your-app-password-is
  DISCOURSE_SMTP_AUTHENTICATION: login
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  DISCOURSE_NOTIFICATION_EMAIL: user@domain.com
  DISCOURSE_SMTP_OPEN_TIMEOUT: 30
  DISCOURSE_SMTP_READ_TIMEOUT: 30
1 « J'aime »

Ce sujet a été automatiquement fermé après 2343 jours. Les nouvelles réponses ne sont plus autorisées.