PowerShell을 사용하여 이메일 보내기
Windows Powershell을 사용하면 시스템에서 직접 이메일을 보낼 수 있습니다. 기본적으로 이것은 비교적 쉽지만 실제로는 여전히 메일 공급자로 자신을 인증해야하기 때문에 종종 실패합니다. 작동 방식을 알려 드리겠습니다.
PowerShell을 사용하여 메일 보내기
보안상의 이유로 PowerShell은 메일 서버의 암호를 스크립트에서 일반 텍스트로 사용할 수 없습니다. 따라서이 데이터를 외부에서 암호화하여 저장하고 트릭과 통합해야합니다.
- 메일을 보내려면 일반적인 모든 매개 변수를 지원하는 "Send-Mailmessage"커맨드 렛을 사용하십시오. "Get-Help Send-Mailmessage"를 통해 이에 대한 자세한 정보를 찾을 수 있습니다.
- 최소한 발신자, 수신자, 제목 및 내용과 발신 메일 서버가 필요합니다.
- 서버가 명시 적으로 전송되지 않으면 PowerShell은 "$ PSEmail Server"변수의 내용을 사용합니다. 따라서이 서버를 스크립트에서 미리 또는 자신의 PowerShell 프로필에서 더 나은 메일 발송을 위해 저장할 수 있습니다.
- 이렇게하려면 "note pad.exe $ profile"을 사용하여 프로필 파일을 열고 "$ PS EmailServer ="smtpmail.t-online.de ""명령을 추가하십시오. 자신의 메일 계정을 담당하는 서버를 값으로 사용하십시오.
- 그러나 많은 메일 서버는 사용자 이름과 비밀번호로 로그인해야합니다. 적어도 전자는 호출 될 때 매개 변수»credential«을 전달할 수 있습니다. 스크립트가 실행되면 누락 된 비밀번호를 입력해야하는 로그인 대화 상자가 표시됩니다. 그러나 이것은 비현실적이며 백그라운드의 스크립트 작업에는 적합하지 않습니다.
- 스크립트에서 비밀번호를 직접 전달할 수 없으므로 암호화 된 파일에서 비밀번호를 읽을 때마다 필요한 PSCredential 오브젝트를 작성해야합니다. 이 파일을 작성하려면»(Get-Credential) .password | ConvertFrom- SecureString> password.txt«.
- 다음 일반 로그인 대화 상자에서»User name«및»Password«를 입력하고»OK«로 확인하십시오. PowerShell은 이제 암호를 암호화하여 대상으로 지정된»password 파일에 저장합니다. TXT ".
- 스크립트에서 나중에 비밀번호를 검색하여»$ password = Get-Content password.txt | 를 ConvertTo-SecureString. "
- 이제»$ credential = New-Object System.Management.Automation.PSCredential "사용자 이름", $ password«명령을 사용하여 필요한 자격 증명 개체를 만듭니다. 마지막으로»credential $ credential«매개 변수와 함께»Send-Mailmessage«를 통해이 객체를 전송합니다.