Eu tenho um único servidor Exchange 2010 multifuncional e a necessidade de executar um script Powershell em uma programação mensal.
Eu realmente gostaria de enviar um relatório por e-mail para a caixa de correio de algumas empresas locais até o final da tarefa.
Eu criei uma conta de serviço com as permissões necessárias e escrevi um script do Powershell que está fazendo tudo certo quando executado como conta de serviço - exceto a parte do relatório de e-mail.
Adicionar o IP do meu servidor Exchange ao conector de recebimento anônimo não me parece correto, talvez haja algum tipo de prática recomendada para isso?
Qualquer opinião é muito apreciada!
ATUALIZAÇÃO:
Quanto à parte de email do script, geralmente eu uso um objeto .NET Net.Mail.MailMessage assim:
$SmtpServer = "exchangeserver.corp.company.com"
$Msg = New-Object Net.Mail.MailMessage
$Smtp = New-Object Net.Mail.SmtpClient($SmtpServer)
$Msg.From = "[email protected]"
$Msg.ReplyTo = "[email protected]"
$Msg.To.Add("[email protected]")
$Msg.Subject = "Monthly script execution report"
$Msg.Body = "Everything's ok, some statistics etc."
$Smtp.Send($Msg)
Quando eu uso esse código, o servidor do Exchange responde com "Serviço indisponível". Para mim, faz sentido, pois não há conectores de recebimento configurados. O comando padrão Send-MailMessage
Powershell fornece o mesmo resultado, então o problema não é com o código, na verdade funciona bem em servidores não-Exchange.
Atualmente, tenho três conectores de recebimento:
- um para correio externo com FQDN mail.company.com aceitando conexões na porta 25
- um para clientes internos do Exchange com o FQDN exchangeserver.corp.company.com na porta SSL padrão 587
- e um para a lista de servidores locais que enviam email via Exchange sem autenticação com o FQDN exchangeserver.corp.company.com na porta 25 (não é uma solução perfeita e eu preferiria não adicionar o IP do meu servidor Exchange à lista)
Então, estou procurando uma maneira legal e segura de fazê-lo funcionar, obrigado antecipadamente!