Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : Envoi de mail depuis un SMTP Office365

Envoi de mail depuis un SMTP Office365 il y a 2 mois 3 semaines #107481

  • kouinkouin
  • Portrait de kouinkouin
  • Hors ligne
  • Fresh Boarder
  • Messages : 4
  • Karma: 0
Bonjour,

J'essaie d'envoyer des mails via un SMTP Office365, mais j'obtiens des erreurs, que j'utilise "SMTP/SMTPS socket library" ou "Swift Mailer socket library".

Mon environnement :
  • Version: 9.0.0, 8.0.2, 8.0.3, 8.0.4 (I didn't test with 8.0.1)
  • OS: Debian 9/Stretch (from docker image)
  • Web server: nginx
  • PHP: 7.1.26 (from docker image)
  • Database: MySQL Percona 5.7
  • Docker image: monogramm/docker-dolibarr:9.0-fpm


Quand je choisis la méthode "SMTP/SMTPS socket library", j'obtiens une erreur du serveur SMTP Office365 :
Failed to send mail (sender=My Company , [email protected])
Error [120]: Ran into problems sending Mail. Response: 501 5.5.4 Invalid domain name [AM6PR03CA0010.eurprd03.prod.outlook.com] Error [126]: 'tls://smtp.office365.com' does not support authenticated connections.

La première méthode ne fonctionnant pas, je choisis la méthode "Swift Mailer socket library", mais j'obtiens une nouvelle erreur :
 Fatal error: Uncaught Error: Class 'Egulias\EmailValidator\Exception\CharNotAllowed' not found in /var/www/html/includes/swiftmailer/egulias/email-validator/EmailValidator/Parser/DomainPart.php:178
Stack trace:
#0 /var/www/html/includes/swiftmailer/egulias/email-validator/EmailValidator/Parser/DomainPart.php(135): Egulias\EmailValidator\Parser\DomainPart->checkNotAllowedChars(Array)
#1 /var/www/html/includes/swiftmailer/egulias/email-validator/EmailValidator/Parser/DomainPart.php(60): Egulias\EmailValidator\Parser\DomainPart->doParseDomainPart()
#2 /var/www/html/includes/swiftmailer/egulias/email-validator/EmailValidator/EmailParser.php(49): Egulias\EmailValidator\Parser\DomainPart->parse('1550585019.swif...')
#3 /var/www/html/includes/swiftmailer/egulias/email-validator/EmailValidator/Validation/RFCValidation.php(30): Egulias\EmailValidator\EmailParser->parse('1550585019.swif...')
#4 /var/www/html/includes/swiftmailer/egulias/email-validator/EmailValidator/EmailValidator.php(37): Egulias\EmailValidator\Validation\RFCVali in /var/www/html/includes/swiftmailer/egulias/email-validator/EmailValidator/Parser/DomainPart.php on line 178

Si je rafraîchis la page (F5), j'obtiens une autre erreur :
Failed to send mail (sender=My Company , [email protected])
Expected response code 250 but got code '554', with message '554 5.2.0 STOREDRV.Submission.Exception:SendAsDeniedException.MapiExceptionSendAsDenied; Failed to process message due to a permanent exception with message Cannot submit message. 16.55847:3A130000, 17.43559:0000000094000000000000000100000000000000, 20.52176:140F5686000010103C050000, 20.50032:140F56867F17101041050000, 0.35180:0A00AA80, 255.23226:46050000, 255.27962:0A000000, 255.27962:0E000000, 255.31418:0A000000, 16.55847:84000000, 17.43559:00000000A0010000000000001300000000000000, 20.52176:140F56860000101003000136, 20.50032:140F56867F1710100A00DA36, 0.35180:44000000, 255.23226:4800D13D, 255.27962:0A000000, 255.27962:32000000, 255.17082:DC040000, 0.27745:0A003A66, 4.21921:DC040000, 255.27962:FA000000, 255.1494:64000000, 0.38698:77090000, 0.37692:0F010480, 0.44092:00000000, 0.41232:00000000, 0.60208:05000780, 0.37136:05000780, 0.34608:00000000, 0.55056:05000780, 0.42768:37003032, 0.56112:00000000, 0.52807:31373242, 4.33016:DC040000, 7.40748:010000000000010B31343743, 7.57132:000000000000000000000000, 1.63016:32000000, 4.39640:DC040000, 8.45434:8CE098808326DC4CA7B470EECC7FFBF600373A34, 5.10786:0000000031352E32302E313632322E3030303A414D345052303830324D42323330373A34396166623264302D346339342D343935392D626235332D3664643032613033313437620000000000, 255.1750:AF000000, 255.31418:03000336, 0.22753:B4000000, 255.21817:DC040000, 4.60547:DC040000, 0.21966:0A003267, 4.30158:DC040000 [Hostname=AM4PR0802MB2307.eurprd08.prod.outlook.com] '

Voici ma config mail :

Notez aussi que le domaine de l'email n'est pas standard Microsoft (pas "admin @ outlook.com" or "admin @ office365.com")

Je ne pense pas que c'est un bug de Dolibarr, probablement une config chez moi qui est mal entrée.

Si vous avez des idées ou des pistes pour débugger, n'hésitez pas :-) .
Merci d'avance !
Dernière édition: il y a 2 mois 3 semaines par kouinkouin. Raison: J'avais initialement aussi le problème avec un serveur Postfix, que je n'ai plus. Je concentre donc le billet sur Office365
L'administrateur a désactivé l'accès en écriture pour le public.

Envoi de mail depuis un SMTP Office365 il y a 2 mois 2 semaines #107573

  • philazerty
  • Portrait de philazerty
  • En ligne
  • Gold Boarder
  • Intégrateur Mon-Dolibarr.fr Hébergement Infogéré
  • Messages : 5682
  • Remerciements reçus 847
  • Karma: 111
Bonjour,
Il faut utiliser SwiftMailer
Le nom du smtp est mondomaine.extension.mail.protection.outlook.com
Exchange utilise STARTTLS sur le port 25
Il faut autoriser une application tiers à envoyer des mails dans la console Exchange.
@+
Dernière édition: il y a 2 mois 2 semaines par philazerty.
L'administrateur a désactivé l'accès en écriture pour le public.

Envoi de mail depuis un SMTP Office365 il y a 2 mois 2 semaines #107578

  • kouinkouin
  • Portrait de kouinkouin
  • Hors ligne
  • Fresh Boarder
  • Messages : 4
  • Karma: 0
Bonjour,

Merci pour la réponse.
Cependant, j'ai une nouvelle erreur :
Failed to send mail (sender=My Company. , [email protected])
Connection could not be established with host exemple.com.mail.protection.outlook.com [php_network_getaddresses: getaddrinfo failed: Name or service not known #0]

example.com est bien sûr le remplacement de mon vrai domaine.
L'administrateur a désactivé l'accès en écriture pour le public.

Envoi de mail depuis un SMTP Office365 il y a 2 mois 2 semaines #107595

  • ZenAdm
  • Portrait de ZenAdm
  • Hors ligne
  • Senior Boarder
  • Messages : 44
  • Remerciements reçus 6
  • Karma: 1
Bonjour,

Voici les paramètres que j'utilise avec succès :
Méthode d'envoi des emailsSwift Mailer socket library
Nom d'hôte ou adresse IP du serveur SMTP/SMTPS (Par défaut dans php.ini: localhost)smtp.office365.com
Port du serveur SMTP/SMTPS (Par défaut dans php.ini: 25)587
Identifiant d'authentification SMTP si authentification SMTP requise(adresse mail d'envoi)
Mot de passe d'authentification SMTP si authentification SMTP requise********
Utilisation du chiffrement TLS (SSL)Non
Utiliser le cryptage TTS (STARTTLS)Oui
MAIN_MAIL_EMAIL_DKIM_ENABLEDNon
......
Adresse email de l'émetteur pour l'envoi d'emails automatiques (Par défaut dans php.ini: Non défini)(adresse mail d'envoi)
Expéditeur par défaut des e-mails pour les envois manuels (e-mail utilisateur ou de la société)Email institution <(adresse mail d'envoi)>
E-mail utilisé les retours d'erreur (champ "Errors-To" dans les e-mails envoyés)(adresse mail d'envoi)
Envoyer systématiquement une copie cachée des emails envoyés à(adresse mail d'envoi)

Attention, l'adresse mail utilisée ici "(adresse mail d'envoi)" doit être une adresse qui dispose d'une licence Office 365, ça ne peut pas être une adresse générique ou une boite partagée, car elle doit disposer de son propre mot de passe.
Du coup, nous avons pris une licence "Exchange Plan 1" pour cette adresse générique d'expédition.
Et c'est cette adresse "(adresse mail d'envoi)"qui est répétée dans tous les champs, car l'adresse de l'expéditeur doit être identique à l'adresse d'authentification sur les serveurs d'Office 365.

Cordialement,
Marc
Dernière édition: il y a 2 mois 2 semaines par ZenAdm.
L'administrateur a désactivé l'accès en écriture pour le public.

Envoi de mail depuis un SMTP Office365 il y a 2 mois 2 semaines #107616

  • kouinkouin
  • Portrait de kouinkouin
  • Hors ligne
  • Fresh Boarder
  • Messages : 4
  • Karma: 0
Je vais vérifier quelle licence a ce compte. Merci en tout cas pour la nouvelle piste !
L'administrateur a désactivé l'accès en écriture pour le public.

Envoi de mail depuis un SMTP Office365 il y a 2 mois 1 semaine #108061

  • kouinkouin
  • Portrait de kouinkouin
  • Hors ligne
  • Fresh Boarder
  • Messages : 4
  • Karma: 0
Enfin ! (presque)

Merci vous deux, vos réponses m'ont bien fait avancé.

J'ia essayé avec le SMTP "domain-tld.mail.protection.outlook.com" (et non "domain.tld.mail.protection.outlook.com", "-" -> "."), ça semble mieux fonctionner :-) .
Je suis resté sur le port 587 avec STARTTLS.

Seul hic, j'obtiens maintenant le message "No mail sent. Feature is disabled by option MAIN_DISABLE_ALL_MAILS".
Dernière édition: il y a 2 mois 1 semaine par kouinkouin. Raison: SMART_TLS -> STARTTLS... -_-
L'administrateur a désactivé l'accès en écriture pour le public.

Envoi de mail depuis un SMTP Office365 il y a 2 mois 1 semaine #108077

  • philazerty
  • Portrait de philazerty
  • En ligne
  • Gold Boarder
  • Intégrateur Mon-Dolibarr.fr Hébergement Infogéré
  • Messages : 5682
  • Remerciements reçus 847
  • Karma: 111
C'est un paramètre de sécurité. Regardez du coté de la configuration mail si vous autorisez l'envoi de mail voir dans les constantes accueil/configuration/divers.
@+
L'administrateur a désactivé l'accès en écriture pour le public.