【发布时间】:2018-10-17 06:45:15
【问题描述】:
我在 windows server 2012 r2 中安装了 SMTP 虚拟服务器。后来我使用了以下 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 虚拟服务器设置中的某处保存电子邮件地址和凭据,以便脚本可以直接获取凭据)。我不想使用上述脚本中的电子邮件地址和凭据
【问题讨论】:
-
您可以在服务器上使用 export-clixml 来存储凭证对象 - 它不能在服务器之间传输,但可以在您的场景中使用。此外 - 关于在互联网上以安全方式存储凭证对象的讨论很多。
标签: powershell email smtp windows-server-2012 smtpclient