J'essaie d'envoyer un email à l'aide du serveur de messagerie de mon entreprise. Mais je reçois l'exception suivante voici mon code d'exemple, p> quel morceau de code est faux?
En tant que nom d'utilisateur et mot de passe, j'utilise l'adresse électronique et le mot de passe de mon entreprise. P> p>
8 Réponses :
Le 5.7.1 est probablement causé par Exchange et non votre code. Vous devrez peut-être simplement activer le relais sur le serveur. Soit pour les utilisateurs anonymes ou à partir d'une certaine adresse IP. Je ne suis pas un expert en échange mais j'ai déjà eu ce travail. Voici la dernière solution que j'ai testée qui fonctionne: p>
Si une erreur 5.7.1 est rencontrée lors de la tentative d'envoi d'un courrier électronique via SMTP sur un serveur Exchange lorsque l'utilisateur a été authentifié. P>
Pour Réf, le problème que vous venez d'avoir été causé par un paramètre sur le serveur Exchange 2007 - cela ne poserait pas normalement un problème sur 2003 Server P>
corrigé en faisant ci-dessous ... p>
Vous pouvez définir ce paramètre d'authentification via l'interface graphique p>
Évidemment, les utilisateurs d'anon ne sont pas trop sécurisés, mais vous pouvez voir si cela résout le problème. P>
Est-il possible que mon administrateur informatique puisse créer un utilisateur de test sur Exchange Server et que je peux utiliser pour envoyer des emails?
je ne vois pas pourquoi pas. Mon site Web est exécuté sous l'impression d'un utilisateur de domaine qui se connecte au serveur Exchange. Je ne sais pas trop sur Exchange, mais le dernier site installé l'application a dû permettre de relais via SMTP à partir du serveur Web. Après cela, j'ai arrêté d'obtenir 5,7.1 erreurs. Si vous ne pouvez pas faire un seul utilisateur, vous devriez être capable de faire une seule machine au moins. Il y a des informations ici sur un problème avec un seul utilisateur de ne pas pouvoir relais qui a un peu intéressantInfo SOCIAL.TECHNET.MICROSOFT.CORE/FORUMS/EN-US/EXCHANGESVRTRANSPO RT / ...
Je pense que la zone que vous devez rechercher est 'Recevoir des connecteurs'
Merci Wraithnath pour votre précieuse contribution. Je vais utiliser un utilisateur de test pour envoyer tous les courriels. Mais je teste également mon application en créant un utilisateur sur Gmail et en envoyant des messages à l'aide de cet utilisateur et fonctionne bien. Mais mon objectif ultime est d'utiliser le serveur de messagerie de la société. Votre aide m'a donné des intrants très précieux.
J'ai dû utiliser Javamail + Exchange. Les messages retournés étaient impuissants. Grâce à la pile, j'ai eu quelques astuces.
Ajouter ceci à votre code P>
props.put("mail.smtp.starttls.enable","true");
Veuillez utiliser les pièces de code suivantes au lieu de J'ai testé dans la section locale et il fonctionne p> p> transport.send (message); code>
transport.send (message) code> Comprend
Message.Savechanges () Code>,
Transport.Connect code>,
Transport.SENDMESSAGE CODE> ET
Transport.close Code> Donc, je ne pense pas que je dois le refaire moi-même.
Dans certaines entreprises, le support SMTP Server Exchange Server est désactivé et vous ne pouvez pas leur demander de l'activer. Dans ces cas, une solution raisonnable est celle-ci: p>
Mail Java simple a travaillé pour moi. La seule chose que vous devez vérifier est pour corriger nom d'hôte em>, nom d'utilisateur em>, port em> et mot de passe em> TransportStrategy. Smtp_tls code>:
@zeddam est cette open source à utiliser?
mail.jar (version 1.4.0) a un problème de compatibilité avec MS Exchange Server et Jantes Mise à niveau de l'API de messagerie sur 1.4.4 ou 1.4.7 devrait résoudre le problème. P>
Mail API'S 1.4.7 peut être télécharger à partir de l'URL suivante: http: / /www.oracle.com/technetwork/java/javamail/index.html p> 530 5.7.1 Client n'a pas été authentifié code>, même lorsque le nom d'utilisateur et le mot de passe sont configurés. P>
Lorsque j'utiliserai un serveur MS Exhange SMTP pour envoyer un courrier électronique, j'utilise la dépendance mavenée ci-dessus. Pour cette raison, j'ai créé une classe qui représente un client de messagerie pour MS Exchange Les serveurs. J'utilise log4j pour la journalisation. P> ci-dessous de la classe client Echange MS Exchange (j'utilise le modèle de constructeur pour la construction de l'objet pour la sécurité du fil), P> // import microsoft.exchange.webservices.data.core.enumeration.misc.ExchangeVersion;
ExchangeClient client = new ExchangeClient.ExchangeClientBuilder()
.hostname("webmail.domainOfWeb.com")
.exchangeVersion(ExchangeVersion.Exchange2010)
.domain("ActiveDirectoryDomain")
.username("ActiveDirectoryUsername")
.password("ActiveDirectoryPassword")
.recipientTo("recipient@whatever.com")
.recipientCc("recipient@whatever.com") // Ignore it in case you will not use Cc recipients.
.recipientBcc("recipient@whatever.com") // Ignore it in case you will not use Bcc recipients.
.attachments("/home/username/image.png") // Ignore it in case you will not use attachements.
.subject("Test Subject")
.message("Test Message")
.build();
client.sendExchange();
Grande solution! Merci!
Une chose que j'ai découverte, qui peut être utile, c'est si vous souhaitez vérifier les courriels avant d'envoyer à l'aide de e-mailMessage.save (); code> au lieu de
emailMessage.end (); code> mettra la Envoyez un courriel dans votre dossier Outlook pour Drefts Outlook où il peut être envoyé ultérieurement.
Le paquet EWS-Java-API est en fin de vie. P>
de https://github.com/OFFICEDEV/ews-java-api p>
À compter du 19 juillet 2018, Exchange Web Services (EWS) ne recevra plus de mises à jour d'entités. Bien que le service continuera de recevoir des mises à jour de sécurité et certaines mises à jour de non-sécurité, la conception et les fonctionnalités du produit resteront inchangées. Ce changement s'applique également aux SDK EWS pour Java et .NET. Plus d'informations Ici: https://developer.microsoft.com/en-us/graph/blogs/uptending-changes-a-exchange-web-servicesvesws-api-for-office-365/ a > p>