smtpclient - 发送 SMTP 电子邮件的 Powershell 脚本失败
问题描述
我正在尝试使用 .net 通过 powershell 发送和发送电子邮件。
我收到以下错误:
Exception calling "Send" with "4" argument(s): "Failure sending mail."
At line:1 char:1
+ $SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : SmtpException
使用以下脚本:
$EmailFrom = "myemail@gmail.com"
$EmailTo = "anotheremail@gmail.com"
$Subject = "test"
$Body = @"
test
"@
$SMTPServer = "smtp.gmail.com"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 25)
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("myemail@gmail.com", "mypassword");
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
什么可能导致此异常?谢谢!
解决方案
这有效:
$EmailTo = "myself@gmail.com"
$EmailFrom = "me@mydomain.com"
$Subject = "Test"
$Body = "Test Body"
$SMTPServer = "smtp.gmail.com"
$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)
推荐阅读
- mysql - MySQL 查询性能非常依赖于 Where 子句
- c# - 在数据类型不固定的情况下读取 SQL 查询的结果
- python - 熊猫数据框中每个时期的一个图
- tableau-api - 如何使用 Tableau 修复字段或列值中的拼写错误
- css - 滑动手势菜单
- regex - 需要从 cmd 输出中截断无用的文本
- sql - oracle如何从case语句中获取函数返回结果
- sql-server - SQL Server Management Studio 拒绝查看对所有数据库的访问权限,但用户有权访问但没有使用户成为所有者的数据库
- ios - Nativescript-Vue IOS安全区布局问题
- python - 如果至少一个单元格是 NaN,则 Pandas 加入行