我有一个PowerShell脚本,它运行SQL数据库的报告,并将报告附加到使用send-mailmessage
发送的电子邮件。
我的语法是send-mailmessage -to user1@domain.com.au -cc user2@domain.com.au -subject "PE matter report (Since 1 July 2015)" -bodyashtml -body $body -Attachments "C:\scripts-and-reports\New PE matters since 01 July 2015.xlsx" -from databaseserver@domain.com.au -Priority high -Verbose -SmtpServer domain-com-au.mail.protection.outlook.com
。
它返回错误
send-mailmessage:系统存储空间不足。服务器响应 是:4.5.3收件人太多(AS780090)
[AM1FFO11FD023.protection.gbl]
如果我从脚本中删除了Cc,则消息发送OK并且收到OK。 但我有点需要Cc,如果可能的话,也需要Bcc。
我已将服务器的WAN IP添加到我的域的SPF记录中(并且测试正常),我已将该URL添加到Office365的ExchangeOnline连接筛选器允许列表中,我有甚至添加了一个传输规则来检查IP,它将SCL设置为-1并绕过混乱。
我无法解决这个问题。有没有人有任何建议?
答案 0 :(得分:1)
这是一种可以尝试的可能性,而不是一个明确的答案。
首先提出问题:user1 @ domain.com.au和/或user2@domain.com.au分发列表?如果是,请尝试使用单个用户地址。
也许你正在以某种方式达到节流限制 - 你可以找到here。引用支持页面 - STMP客户端提交的限制限制。限制是:
每天10,000名接收者。每分钟30条消息
(正如培根比特写的那样,你可能会有一些内部限制)
你必须低于这个限制。您可能正在使用-cc
达到限制。
用双引号括起邮件地址/列表
send-mailmessage -to "user1@domain.com.au" -cc "user2@domain.com.au" ...
是否适用于除-bcc
以外的-cc
?
-cc
是可选的还是总是填充?
答案 1 :(得分:1)
我想我找到了一个解决方法......
我已切换到使用带有身份验证和SSL的Office365 SMTP服务器。
新命令是: -
$login = "mailboxwithsendaspermission@domain.com.au"
$password = "abovemailboxpassword" | Convertto-SecureString -AsPlainText -Force
$credentials = New-Object System.Management.Automation.Pscredential -Argumentlist $login,$password
send-mailmessage -to user1@domain.com.au -cc user2@domain.com.au -subject "PE matter report (Since 1 July 2015)" -bodyashtml -body $body -Attachments "C:\scripts-and-reports\New PE matters since 01 July 2015.xlsx" -from databaseserver@domain.com.au -Priority high -Verbose -UseSsl -Port 587 -SmtpServer smtp.office365.com -Credential $credentials
我认为这不太安全,因为密码以纯文本格式存储,但所有服务器都位于防火墙后面,并且不被其他任何人使用。
我没想过这样做 - 但至少它同时适用于-to
,-cc
和-bcc
。