O Exchange Connector não irá enviar para domínios externos

6

Sou um desenvolvedor tentando fazer com que meu aplicativo .Net envie emails pelo nosso servidor Exchange. Eu não sou um especialista em troca, então vou qualificar isso na frente!

Nós configuramos um Conector de recebimento no Exchange que possui as seguintes propriedades:

  1. Rede: permite todos os endereços IP pela porta 25.

  2. Autenticação: as caixas de seleção Segurança da Camada de Transporte e Externamente Segura são verificadas.

  3. As caixas de seleção Grupos de permissões: Usuários anônimos e Exchange Servers estão marcadas.

Mas, quando executo essa declaração do Powershell diretamente em nosso servidor Exchange, ela funciona quando eu mando para um endereço de domínio local, mas quando tento enviar para um domínio remoto ele falha.

OBRAS:

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

(BTW: meu valor para OURSERVER = boxname.domainname.local. Esse é o mesmo nome completo que aparece no nosso Shell de Gerenciamento do Exchange quando eu inicio o mesmo).

FALHA:

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

Send-MailMessage : Mailbox unavailable. The server response was: 5.7.1 Unable to relay At line:1 char:17 + Send-Mailmessage <<<< -To [email protected] -From [email protected] -Subject testing -Body himom -SmtpServer FTI-EX + CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [Send-MailMessage], SmtpFailed RecipientException + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage

EDITAR: A partir do conselho do @TheCleaner, eu executei o Add-ADPermission no relay e isso não ajudou;

[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  

Obrigado pela ajuda. Mark

    
por sisdog 08.02.2013 / 19:31

4 respostas

3

Você deve configurar um conector de recebimento operando em uma porta não padrão (talvez 2525) e restringi-lo para aceitar apenas endereços IP de servidores que você sabe que estão autorizados a enviar. Crie o conector com nada marcado em Autenticação e Usuários anônimos marcados para grupos de permissões.

Depois disso, você precisará executar o seguinte comando no PS, pois o Exchange, por padrão, bloqueia a retransmissão anônima em qualquer conector de recebimento.

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

Eu apenas testei isso no meu próprio servidor Exchange e consegui enviar para o Gmail e para o meu próprio domínio, enviando do domínio de troca, bem como um domínio falso.

Adicione também o argumento -port 2525 ao seu script PS.

    
por 17.03.2015 / 00:50
0

Existem maneiras de redirecionar para o mundo externo sem autenticação de sua rede interna (criando um novo conector SMTP em sua borda ou hub).

Na maioria das circunstâncias, é melhor configurar a autenticação, se puder fazê-lo. Isso funciona bem se você estiver enviando apenas de um punhado de processos / scripts dedicados, etc.

Se você quiser que a retransmissão não autenticada crie uma nova regra de conector de recebimento do hub. Para fazer isso (supondo que um único servidor do Exchange preenchesse todas as funções do Exchange):

Configuração do servidor - > Transporte de Hub

Use todos os endereços IP disponíveis para receber e insira quaisquer hosts remotos que serão retransmitidos para a configuração 'receber correio do servidor remoto'.

Você provavelmente não desejará nenhum dos métodos de autenticação (possivelmente TLS) e o grupo de permissões deverá ser definido como anônimo.

    
por 08.02.2013 / 20:09
0

Suponho que exista apenas um servidor Exchange, nada sofisticado com um gateway / filtro de spam, etc.

No seu conector de recebimento (chame de "Relay"):

  1. Verifique se o "Receber e-mails de servidores remotos que possuem esses endereços IP" tem o (s) endereço (s) IP do (s) servidor (es) em que você executará este aplicativo.

  2. No toque de autenticação, a única coisa que deve ser verificada é "Protegido Externamente"

  3. Nos grupos de permissões, a única coisa que deve ser verificada é "Exchange Servers"

NOTA: Se você usar "Anônimo", como parece em sua postagem original, será necessário executar esse comando no shell do Exchange para que o tipo de conector de retransmissão funcione:

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

Em seguida, tente o aplicativo novamente em um dos servidores cujo IP está no nº 1 acima. Não tente diretamente no próprio servidor do Exchange.

    
por 08.02.2013 / 20:06
0

Isso pode ser mais uma solução alternativa, mas a especificação de credenciais em seu script deve permitir que você envie externamente sem exigir nenhuma alteração de configuração no lado do Exchange.

    
por 25.08.2017 / 08:28

Tags