用于电子邮件通知的 PowerShell 脚本
PowerShell Script for Email Notification
我正在使用 FileZilla Server 作为 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”之间的关系是什么,我在另一个网站上找到了上述解决方案,它们是不同的,这些不应该是一样吗?
确保您了解该脚本实际上与您的 FTP 服务器无关。它只是一个发送固定电子邮件的普通 PowerShell 脚本。所以脚本中的所有内容都与您的 SMTP 邮件服务器相关,而不是您的 FTP 服务器。所以...
SmtpClient
constructor 是您的 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 地址和密码。
我正在使用 FileZilla Server 作为 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”之间的关系是什么,我在另一个网站上找到了上述解决方案,它们是不同的,这些不应该是一样吗?
确保您了解该脚本实际上与您的 FTP 服务器无关。它只是一个发送固定电子邮件的普通 PowerShell 脚本。所以脚本中的所有内容都与您的 SMTP 邮件服务器相关,而不是您的 FTP 服务器。所以...
SmtpClient
constructor 是您的 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 地址和密码。