返回

如何使用 PowerShell 脚本从 Gmail 发送电子邮件?

windows

使用 PowerShell 脚本从 Gmail 发送电子邮件

作为一位经验丰富的程序员,我经常需要自动化任务,而发送电子邮件是其中一项常见的工作。在本文中,我将分享一种使用 Windows PowerShell 脚本从 Gmail 发送电子邮件的方法。

配置 SMTP

在发送电子邮件之前,我们需要配置 SMTP(简单邮件传输协议)服务器。

  1. 登录您的 Gmail 帐户。
  2. 进入 设置 > 转发和 POP/IMAP
  3. 启用 POPIMAPSMTP
  4. SMTP 服务器 部分,输入以下信息:
    • SMTP 服务器:smtp.gmail.com
    • SMTP 端口:587
    • 使用 TLS:是

编写 PowerShell 脚本

配置好 SMTP 之后,我们可以编写 PowerShell 脚本来发送电子邮件。以下是一个示例脚本:

$smtpServer = "smtp.gmail.com"
$smtpPort = 587
$smtpUser = "your.username@gmail.com"
$smtpPassword = "your_smtp_password"

$from = "your.username@gmail.com"
$to = "recipient@example.com"
$subject = "Email from PowerShell"
$body = "Hello from PowerShell!"

$message = New-Object System.Net.Mail.MailMessage($from, $to)
$message.Subject = $subject
$message.Body = $body
$message.IsBodyHtml = $false

$client = New-Object System.Net.Mail.SmtpClient($smtpServer, $smtpPort)
$client.EnableSsl = $true
$client.UseDefaultCredentials = $false
$client.Credentials = New-Object System.Net.NetworkCredential($smtpUser, $smtpPassword)
$client.Send($message)

Write-Host "Email sent successfully!"

故障排除

在发送电子邮件时,你可能会遇到一些问题。以下是常见的错误及解决方法:

  • 错误:SMTP 服务器需要安全连接或客户端未经身份验证 :确保已启用两步验证或创建应用特定密码。
  • 错误:服务器返回:535 密码错误 :检查 SMTP 用户名和密码是否正确。
  • 错误:服务器返回:550 拒绝的收件人 :检查收件人电子邮件地址是否有效。
  • 错误:系统调用失败 :确保您的防火墙未阻止 SMTP 端口。

添加附件

要向电子邮件添加附件,请使用以下代码:

$attachment = New-Object System.Net.Mail.Attachment("C:\path\to\file.pdf")
$message.Attachments.Add($attachment)

结论

使用 Windows PowerShell 脚本从 Gmail 发送电子邮件可以节省时间并简化任务。通过配置 SMTP、编写脚本和进行必要的故障排除,你可以轻松发送电子邮件。

常见问题解答

  • 如何获取应用特定密码?
    登录你的 Google 帐户 > 安全性 > 应用密码 > 选择应用和设备 > 其他 > 命名密码 > 生成
  • 如何检查 SMTP 端口是否被阻止?
    使用命令提示符运行 telnet smtp.gmail.com 587。如果连接成功,你将看到 "Connected to smtp.gmail.com"。
  • 如何添加多个收件人?
    使用分号 (;) 分隔收件人电子邮件地址。例如: $to = "recipient1@example.com; recipient2@example.com"
  • 如何发送 HTML 电子邮件?
    $message.IsBodyHtml 设置为 $true
  • 如何发送密码受保护的电子邮件?
    使用 $client.EnableSsl = $true 启用 SSL 并使用应用特定密码作为密码。