我使用 FileZilla 服務器作為 FTP。我想創建一個 PowerShell 腳本,該腳本將在檔案上傳后立即發送電子郵件。
我一直在使用這篇文章中的知識:https : //richjenks.com/filezilla-email-notifications/
下面是我的 fn.ps1 檔案的代碼
$EmailFrom = "SENDER_EMAIL"
$EmailTo = "RECIPIENT_EMAIL"
$Subject = "New File Uploaded to FileZilla"
$Body = "A new file has been uploaded to the FTP server on FileZilla"
$SMTPServer = "127.0.0.1"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 21)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object
System.Net.NetworkCredential("GMAIL_ADDRESS", "GMAIL_PASSWORD");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
唯一的問題是實際上沒有發送電子郵件?我可以看到 PowerShell 在上傳檔案后短暫彈出,因此它在檔案上傳時運行,但實際上沒有電子郵件發送到任何地方。
任何幫助將不勝感激。
編輯:我不完全確定“SENDER_EMAIL”和“GMAIL_ADDRESS”之間的關系,我在另一個網站上找到了上述解決方案,它們是不同的,這些不應該相同嗎?
uj5u.com熱心網友回復:
確保您了解該腳本實際上與您的 FTP 服務器無關。它只是一個發送固定電子郵件的普通 PowerShell 腳本。所以腳本中的所有內容都與您的 SMTP 郵件服務器相關,而不是與您的 FTP 服務器相關。所以...
什么去
SmtpClient構造是SMTP郵件服務器的地址。您似乎正在使用 FTP 服務器的地址。$SMTPServer = "127.0.0.1" $SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 21)檢查您基于此的示例。他們使用
smtp.gmail.com:587.同樣,
SmtpClient.Credentials您的 SMTP 郵件服務器的憑據也是如此。所以一些真正的價值,而不是像這樣的占位符:$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("GMAIL_ADDRESS", "GMAIL_PASSWORD");對于 Gmail,它們將是您的 Gmail 地址和密碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/372241.html
上一篇:PowerShell獲取程式目錄
下一篇:如何從腳本輸出文本或回傳物件?
