Puis-je envoyer des e-mails SMTP via la boîte aux lettres partagée Office365?


13

Nous envisageons de passer à O365; cependant, nous avons développé un logiciel qui utilise notre serveur Exchange actuel pour envoyer des e-mails à des utilisateurs externes ainsi qu'à une boîte d'assistance en cas d'erreur.

J'ai testé cela pour m'assurer que le code que nous avons en place continuera de fonctionner avec O365 mais jusqu'à présent, je n'ai pas eu beaucoup de succès.

J'ai essayé d'utiliser SmtpClient de .Net ainsi que SmtpClient de MailKit et aucun ne semble fonctionner. Je continue à recevoir des erreurs (c'est l'erreur de MailKit - l'erreur .Net est similaire)

"AuthenticationInvalidCredentials: 5.7.3 Authentication infructueuse [* .prod.exchangelabs.com]" "

Je peux utiliser les informations d'identification que j'ai dans mon code pour me connecter à OWA - je sais donc que les informations d'identification sont valides. N'est-il pas possible d'envoyer des e-mails via O356? Y a-t-il une configuration spéciale qui doit se produire dans Exchange pour rendre cela possible?

Voici ce que j'ai essayé jusqu'à présent:

MailKit

var msg = new MimeMessage();
msg.From.Add(new MailboxAddress("Support","support@mydomain.com"));
msg.To.Add(new MailboxAddress("Me","me@mydomain.com"));
msg.To.Add(new MailboxAddress("External User","euser@externaldomain.com"));
msg.Subject = "Test";
msg.Body = new TextPart("plain"){
   Text = "Here is a message for you"
};
using(var client = new SmtpClient()){
    client.ServerCertificateValidationCallback = (s,c,h,e) => true;
    client.AuthenticationMechanisms.Remove("XOAUTH2"); //Not sure what this does.  Have tried with and without
    client.Connect("smtp.office365.com", 587, MailKit.Security.SecureSocketOptions.StartTls);
    client.Authenticate(new NetworkCredential("support@mydomain.com", "supportPwd"));
    client.Send(msg);
    client.Disconnect(true);
}

Le code .Net SmtpClient ressemblait beaucoup au code MailKit.

  1. Existe-t-il un moyen d'envoyer via O365 avec un utilisateur sous licence? (code ci-dessus)
  2. Existe-t-il des paramètres spéciaux requis dans Exchange ou sur l'utilisateur sous licence pour que cela fonctionne? (Si la réponse à 1 est oui)
  3. Est-il possible d'envoyer des e-mails via une boîte aux lettres partagée pour laquelle l'utilisateur disposant des informations d'identification dispose des droits Envoyer en tant que?

Mise à jour

Je reçois toujours le même message d'erreur. MFA est activé pour nos utilisateurs de domaine. Cependant, nous avons une politique qui ne nécessite pas d'authentification multifacteur pour les utilisateurs lorsqu'ils se connectent à partir d'un emplacement approuvé (IP de notre organisation). J'ai également répertorié notre IP comme IP de confiance. Dans mon esprit, le MAE ne devrait pas être le problème ici.

Je sais que les informations d'identification sont correctes. Je les ai copiés à partir du code et les ai collés dans l'écran de connexion lors de la connexion à M365 - et je suis bien entré.

Qu'est-ce que je fais mal?

Réponses:


7
  1. Oui, vous pouvez.

  2. Paramètres utilisateur: Capture d'écran d'Admin Center Capture d'écran de Gérer les applications de messagerie

Paramètres du serveur: https://support.office.com/en-us/article/POP-IMAP-and-SMTP-settings-for-Outlook-com-d088b986-291d-42b8-9564-9c414e2aa040

SMTP server name smtp.office365.com

SMTP port 587

SMTP encryption method STARTTLS
  1. Non vous ne pouvez pas. Vous avez besoin d'un utilisateur autorisé pour envoyer du courrier via SMTP.

https://answers.microsoft.com/en-us/msoffice/forum/msoffice_o365admin/set-up-smtp-relay-with-shared-mailbox/d7b98214-9564-432c-b098-525a98c529fb

Un de nos clients a mis en place un système de newsletter avec TYPO3 et nous avons dû créer une nouvelle boîte aux lettres pour cela. Cependant, un léger suffira: au lieu d'un Office 365 Business Premium, nous n'avons attribué qu'une licence Office 365 F1.

Modifier: également trouvé ceci: la boîte aux lettres partagée Office365 peut-elle utiliser SMTP?


Cela semble donc répondre à ma question concernant une boîte aux lettres partagée. Mais dans mon code initial, je travaille avec un utilisateur sous licence et cela ne fonctionne pas non plus - le devrait-il?
RHarris

@RHarris oui, il le devrait. Voir la réponse modifiée. Désolé pour la première réponse incomplète.
Wolfgang Jacques

0

Pour tous ceux qui ont des problèmes similaires, j'ai trouvé que mon problème était une politique d'accès conditionnel. Microsoft fournit un Baseline Policy: Block Legacy Authentication- qui avait été activé dans notre AAD.

En examinant la politique, elle est conçue pour BLOQUER tous les mécanismes d'authentification qui ne nécessitent pas d'authentification multifacteur. Cela inclut des choses comme POP et SMTP. Une fois que j'ai désactivé cette stratégie, le code ci-dessus a très bien fonctionné.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.