我正在尝试开发一个用于发送电子邮件的脚本。我成功完成了这项工作,但仅适用于gmail并且可行。
我现在需要将脚本集成到公司网络中,如何处理登录用户并传入此脚本?当我连接到公司网络时,这个脚本不起作用,我认为是因为我的登录使用和传递以及我不知道的其他事情。
$email = "sender.mail@gmail.com"
$pass = "sender.mail.pass"
$smtpServer = "smtp.gmail.com"
$msg = new-object Net.Mail.MailMessage
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.EnableSsl = $true
$msg.From = "$email"
$msg.To.Add("receiver.mail@Xcorporation.com")
$msg.BodyEncoding = [system.Text.Encoding]::UTF8
$msg.SubjectEncoding = [system.Text.Encoding]::UTF8
$msg.IsBodyHTML = $true
$msg.Subject = "Test mail from PowerShell"
$msg.Body = "This mail is sended automatically from PowerShel script"
$SMTP.Credentials = New-Object System.Net.NetworkCredential("$email", "$pass");
$smtp.Send($msg)
答案 0 :(得分:2)
为什么不使用Send-MailMessage,您可能会发现它更容易使用。
答案 1 :(得分:1)
我只是想添加一个参考,以防有人有一个积极的公司防火墙不允许,例如谷歌的SMTP服务。
以下是使用Sendgrid的电子邮件Rest API发送电子邮件的摘要:
{{1}}
作为参考,SendGrid提供免费电子邮件服务offering for Azure subscribers,每月发送25000封免费电子邮件。