2014-02-18 3 views
0

-Credential을 지정하지 않고 항상 Send-MailMessage이라는 cmdlet을 사용했습니다. 이제 익명 사용자를 사용하여 메일을 보내야합니다. 내가 찾은 해결 방법은 코드익명 사용자로 powershell에서 메일 보내기

$pass = ConvertTo-SecureString "anyString"-AsPlainText -Force 
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "NT AUTHORITY\ANONYMOUS LOGON",$pass 
Send-MailMessage -Credential $cred #... 

그것은 작동이 조각이지만,이 익명 메일을 보내 익명이고 얻을 수있는 올바른 방법인가?

+1

을, 당신 자격증 명을 별도로 지정할 필요는 없습니다. – mjolinor

+0

메일 서버가 익명 릴레이를 수행하지 않는다고 생각합니다. 우리의 인프라에서 사서함을 가진 사용자 만 메일 서버에 메일을 보낼 수 있지만 권한이 높은 (그리고 사서함이없는) 관리자는 사용하고 있으며 메일 서버는 해당 사용자의 메일을받지 않습니다. 메일 서버가 제대로 구성되어 있지 않다고 생각하십니까? 이 메일 서버를 수정할 수 없으므로 변경 사항을 묻지 않습니다. 익명 사용자로 메일을 보내는 '깨끗한'방법이 있습니까? – Naigel

+0

Exchange 전송 서버입니까? – mjolinor

답변

2

모든 주소에서 메일을 보낼 수 있습니다.받는 메일 서버가 보내는 사용자를 확인할 수 있는지 여부에 달려 있습니다.

예를 들어

당신이 [email protected]에서 보내고 마이크로 소프트는 해당 계정이없는, 또는 그들이 보내는 메일 서버가 유효한지 여부를 나타내는 SPF 레코드가 아닌지, 다음의 수신 메일 서버는 (항상)을 거부 할 수 .

이메일 사용자가 실제로 존재하고 유효한 도메인을 가지고 있는지 확인하고 익명 @ 또는 noreply @ 또는 원하는대로 보낼 수 있습니다.

+0

설명해 주셔서 감사합니다. 사서함이없는 관리 사용자를 사용 중이며 메일 서버는이 사용자의 메일 만 허용하지 않습니다. 메일 서버 관리자가 익명 사용자로 메일을 보내야한다고했습니다 – Naigel

1

오케이, 의견에서 우리는 Exchange 서버를 다루고 있음을 알고 있습니다. 익명 릴레이를 수행할지 여부는 수신 커넥터의 구성에 따라 다릅니다. 그러나 이러한 제한은 네트워크 연결에만 적용됩니다. Exchange 서버에서 Send-MailMessage를 실행하고 SMTP 서버로 'LocalHost'를 사용하면 수신 커넥터를 통과하지 못하므로 이러한 제한이 적용되지 않습니다.

Exchange 서버에서 사용할 원격 한 경우는 수신 커넥터 구성을 수정할 필요없이 이메일을 보내 로컬 호출을 수행하는 것을 사용할 수 있습니다 : 메일 서버가 익명 릴레이를 할 경우

$EmailParams = 
    @{ 
     To   = '<Email To>' 
     From  = '<Email From>' 
     Subject = '<Email Subject>' 
     Body  = '<Email Body>' 
     SMTPServer = 'localhost' 
    } 

    $Scriptblock = [Scriptblock]::Create(
    "Send-MailMessage $(&{$args} @EmailParams) ") 
Invoke-Command -ScriptBlock $Scriptblock -ComputerName ExchangeServer 
+0

제안 된 솔루션에 감사하지만이 방법으로 원격으로 연결할 수는 없습니다 – Naigel

+0

Exchange 관리자가 익명 릴레이를 사용하기를 원한다면 수신 커넥터 중 하나를 구성하여이를 수행하십시오. – mjolinor