web-dev-qa-db-fra.com

Le connecteur d'échange n'enverra pas aux domaines externes

Je suis un développeur essayer d'obtenir mon application .Net pour envoyer des emails à travers notre serveur Exchange. Je ne suis pas un expert d'échange, je vais donc qualifier cela à l'avance !!

Nous avons configuré un connecteur de réception en échange qui possède les propriétés suivantes:

  1. Réseau: permet à toutes les adresses IP via le port 25.

  2. Authentification: La sécurité de la couche de transport et des cases à cocher sécurisées de manière externe sont vérifiées.

  3. Groupes d'autorisation: Les utilisateurs anonymes et les cases à cocher des serveurs Exchange sont vérifiés.

Mais lorsque j'exécute cette instruction PowerShell sur notre serveur Exchange, il fonctionne lorsque j'envoie une adresse de domaine locale, mais lorsque j'essaie d'envoyer à un domaine distant, il échoue.

TRAVAUX:

C:\Windows\system32>Send-Mailmessage -To [email protected] -From [email protected] -Subject testing -Body testing -SmtpServer OURSERVER

(BTW: Ma valeur pour Ourserver = boxname.domainName.Local. Il s'agit du même nom pleinement qualifié qui apparaît dans notre coquille de gestion Exchange lorsque je le lance).

ÉCHOUE:

C:\Windows\system32>Send-Mailmessage -To [email protected] -From [email protected] -Subject testing -Body testing -SmtpServer OURSERVER

Envoyer-MailMessage: boîte aux lettres indisponible. La réponse du serveur était la suivante: 5.7.1 Impossible de relais à la ligne: 1 Char: 17 + Envoyer-mailMessage <<<< -To [email protected] -from [email protected] -subakin.com -SubAn.com EX + CatégorieInfo: InvalidOperation: (System.Net.Mail.SMTPCLIPT: SMTPCLIENT) [Envoyer-mailmessage], SmtpLeDeCentException + entièrementQaliedErrorID: SMTPException, Microsoft.Powershell.comMands.sendMailMessage

EDIT : Du conseil de @thecleaner, j'ai dirigé l'adpert-adpermission au relais et cela n'a pas aidé;

[PS] C:\Windows\system32>Get-ReceiveConnector "Allowed Relay" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

Identity             User                 Deny  Inherited  
--------             ----                 ----  ---------  
FTI-EX\Allowed Relay NT AUTHORITY\ANON... False False  

Merci pour l'aide. marque

6
sisdog

Vous devez configurer un connecteur de réception fonctionnant sur un port non standard (peut-être 2525) et restreignez-le pour accepter uniquement les adresses IP des serveurs que vous connaissez sont autorisés à envoyer. Créez le connecteur sans rien coché dans l'authentification et les utilisateurs anonymes cochés pour les groupes d'autorisations.

Après cela, vous devez exécuter la commande suivante dans PS comme Exchange par blocs par défaut des blocs anonymes relais sur n'importe quel connecteur de réception.

Get-ReceiveConnector “Receive Connector Name” | Add-ADPermission -User “NT AUTHORITY\ANONYMOUS LOGON” -ExtendedRights “Ms-Exch-SMTP-Accept-Any-Recipient”

Je viens de tester cela sur mon propre serveur Exchange et j'ai réussi à envoyer à la fois à Gmail et à mon propre domaine, en envoyant du domaine Exchange ainsi qu'un faux domaine.

Ajoutez aussi le -port 2525 argument sur votre script ps.

3
atomicharri

Cela pourrait être plus d'une solution de contournement, mais la spécification des informations d'identification de votre script devrait vous permettre d'envoyer de l'extérieur sans nécessiter de modifications de configuration sur le côté échange.

0
KERR

Je supposerai qu'il n'y a qu'un serveur d'échange, rien d'envie d'un filtre de passerelle/spam, etc.

Sur votre connecteur de réception (appelez-le "relais"):

  1. Assurez-vous que le "mail de réception des serveurs distants qui dispose de ces adresses IP" a l'adresse IP (s) du ou des serveurs (s) que vous allez exécuter cette application.

  2. Sur le robinet d'authentification, la seule chose à vérifier est "sécurisée de l'extérieur".

  3. Sur les groupes d'autorisation, la seule chose à vérifier est "Serveurs d'échange"

Remarque: Si vous utilisez "Anonymous" comme il ressemble à votre message d'origine, vous devez exécuter cette commande dans le shell Exchange pour obtenir ce type de connecteur de relais pour fonctionner:

Get-ReceiveConnector "NAMEOFCONNECTOR" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"

Ensuite, essayez à nouveau l'application de l'un des serveurs dont la propriété intellectuelle est au n ° 1 ci-dessus. N'essayez pas directement sur le serveur Exchange lui-même.

0
TheCleaner

Il existe des moyens de relâcher le monde extérieur sans authentification de votre réseau intérieur (en créant un nouveau connecteur SMTP sur votre bord ou votre hub).

Dans la plupart des cas, vous feriez mieux de mettre en place une authentification si vous pouvez le faire. Cela fonctionne bien si vous n'envoyez que d'une poignée de processus/scripts dédiés, etc.

Si vous souhaitez avoir un relais non authentifié, créez une nouvelle règle de connecteur de hub. Pour ce faire (en supposant un seul serveur d'échange remplissant tous les rôles de change):

Configuration du serveur -> Transport de moyeu

Utilisez toutes les adresses IP disponibles pour votre réception et entrez tous les hôtes distants qui relèvent du paramètre "Recevoir le courrier à partir du serveur distant".

Vous ne voudrez probablement pas que les méthodes d'authentification (éventuellement TLS) et que le groupe de permission doit être réglé sur Anonyme.

0
Tim Brigham