我發現這個博客網站:Adam Kahtava
我也發現了這個問題:send-mail-via-gmail-with-powershell-v2s-send-mailmessage
的問題是,他們都沒有解決雙方的需求(附件有密碼),所以我做了兩者的結合,來到了這一點:
$EmailTo = "[email protected]"
$EmailFrom = "[email protected]"
$Subject = "Test"
$Body = "Test Body"
$SMTPServer = "smtp.gmail.com"
$filenameAndPath = "C:\CDF.pdf"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$attachment = New-Object System.Net.Mail.Attachment($filenameAndPath)
$SMTPMessage.Attachments.Add($attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("username", "password");
$SMTPClient.Send($SMTPMessage)
因爲我喜歡做的事情功能,我需要所有的做法我可以,我繼續寫這個:
Function Send-EMail {
Param (
[Parameter(`
Mandatory=$true)]
[String]$EmailTo,
[Parameter(`
Mandatory=$true)]
[String]$Subject,
[Parameter(`
Mandatory=$true)]
[String]$Body,
[Parameter(`
Mandatory=$true)]
[String]$EmailFrom="[email protected]", #This gives a default value to the $EmailFrom command
[Parameter(`
mandatory=$false)]
[String]$attachment,
[Parameter(`
mandatory=$true)]
[String]$Password
)
$SMTPServer = "smtp.gmail.com"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
if ($attachment -ne $null) {
$SMTPattachment = New-Object System.Net.Mail.Attachment($attachment)
$SMTPMessage.Attachments.Add($STMPattachment)
}
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($EmailFrom.Split("@")[0], $Password);
$SMTPClient.Send($SMTPMessage)
Remove-Variable -Name SMTPClient
Remove-Variable -Name Password
} #End Function Send-EMail
要調用它,只需使用這個命令:
Send-EMail -EmailTo "[email protected]" -Body "Test Body" -Subject "Test Subject" -attachment "C:\cdf.pdf" -password "Passowrd"
我知道這是不是安全的把密碼顯然這樣的。我會看看我是否能夠提出更安全的更新,並且稍後再進行更新,但至少這應該爲您提供開始所需的內容。祝您有個愉快的一週!
編輯:新增$EmailFrom
基於JuanPablo的評論
您是否嘗試添加'-UseSsl'開關? –
謝謝。是的,這是問題,我也從http://stackoverflow.com/questions/4491229/the-smtp-server-requires-a-secure-connection-or-the-client-was-not-authenticated得到一個提示。 – slayedbylucifer
這個問題絕對幫了我,所以'太靠近本地化'是不正確的。投票重開。 –