Отправить письмо через SMTP Mail сервер
Я установил SMTP Virtual Server в Windows Server 2012 R2. Позже я использовал следующий скрипт PowerShell для отправки электронного письма. Который был успешным
$email = "xxxxxxxxxx@xxxxxx.com"
$pass = "xxxxxxx"
$smtpServer = "smtp.office365.com"
$smtpPort = "25"
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.EnableSsl = $true
$msg.From = "$email"
$attachment = New-Object Net.Mail.Attachment("C:abcd/123.txt");
$msg.Attachments.Add($attachment);
$msg.To.Add("xxxx@xxxxx.com")
$msg.BodyEncoding = [system.Text.Encoding]::Unicode
$msg.SubjectEncoding = [system.Text.Encoding]::Unicode
$msg.IsBodyHTML = $true
$msg.Subject ="List of users"
$msg.Body=$msg.Body = "<h2> hi everyone </h2>
$SMTP.Credentials = New-Object System.Net.NetworkCredential("$email", "$pass");
$smtp.Send($msg)
здесь мой вопрос: могу ли я отправлять электронную почту, не используя адрес, указанный в приведенном выше сценарии (есть ли возможность сохранить адрес электронной почты и учетные данные где-нибудь в настройках виртуального сервера SMTP, чтобы сценарий мог принимать учетные данные напрямую). Я не хочу использовать адрес электронной почты и учетные данные в приведенном выше сценарии
1 ответ
Я бы предложил использовать Send-MailMessage
вместо ручного манипулирования.NET:
$Creds = Import-CliXml -Path 'C:\mycreds.xml'
$MailArgs = @{ 'SmtpServer' = 'smtp.office365.com'
'Port' = 25
'To' = 'xxxx@xxxxx.com'
'From' = $Creds.UserName
'Subject' = 'List of users'
'Attachments' = 'C:\abcd\123.txt'
'Body' = '<h2> hi everyone </h2>'
'Encoding' = [Text.Encoding]::Unicode
'BodyAsHtml' = $true
'UseSsl' = $true
'Credential' = $Creds
}
Send-MailMessage @MailArgs
И вы бы создали свой $Creds
объект следующим образом:
Get-Credential -Credential 'xxxxxxxxxx@xxxxxx.com' | Export-CliXml -Path 'C:\mycreds.xml'
Есть пара дополнительных опций, которые могут вас заинтересовать (например, уведомление о доставке), о которых вы можете прочитать в документе, указанном выше.
Кроме того, ваш пароль шифруется при экспорте с использованием Export-CliXml
специфичные для этого устройства и учетной записи, использующей DPAPI.