首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >当使用附件时,发送邮件每2次关闭一次

当使用附件时,发送邮件每2次关闭一次
EN

Stack Overflow用户
提问于 2017-04-11 07:06:23
回答 2查看 3.8K关注 0票数 3

我试图写一个powershell脚本发送电子邮件与一些附件30人。电子邮件是个性化的,所以必须单独发送。没有附件,脚本工作得很好。但是,在使用附件时,发送邮件的其他每个实例都会失败,原因如下:

:无法将数据写入传输连接:现有连接被远程主机强制关闭。

发送消息之间的等待/停顿时间似乎并不重要。,即使我等待几分钟,第一个实例总是成功的,下一个实例将失败,下一个实例将成功,等等。我甚至注意到在运行脚本之间,偶数或奇数上的ctrl+c决定了发送邮件第一个实例的成功与否。如果最后一条消息失败,则第一条消息成功,反之亦然。

我的代码非常简单,我们只有一个包含所有用户的数组,并且

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$array | foreach {
  Write-Host "Sending Mail..."
  Send-MailMessage -From 'myemail@domain' -To $_.EmailAddress 
  -SmtpServer 'fqdn' 
  -Attachments "1.pdf", "2.pdf"
  -Subject 'Subject'
  -Body ($html)
  -BodyAsHtml
}

因此,输出将类似于:

发邮件..。 发邮件..。 :无法将数据写入传输连接:现有连接被远程主机强制关闭。 发邮件..。 发邮件..。 :无法将数据写入传输连接:现有连接被远程主机强制关闭。

在没有错误的情况下,邮件会完好无损地到达。

我可以通过这样做来“解决”这个问题

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try { Send-MailMessage ... -EA Stop }
catch { Send-MailMessage }

因此,30/30的人将收到邮件(而不是15/30),因为每一次尝试(除了#1)都失败了,但是catch块中的代码总是能够成功的。

当然,这不是一个真正的解决方案,我不想就这样离开。有没有人对这里发生的事情有任何洞察力,以及如何解决?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-12 10:20:32

我相信我已经找到了最好的解决办法。非常感谢马特在评论中帮助了我。

这个问题似乎是由Send-Mailmessage产生的,当连接对象发送完邮件后,它就没有正确地处理它。使用现有连接运行Send-Mailmessage将强制将其释放,从而第三次运行它将获得成功。

解决方法是将Send-Mailmessage的每个实例作为单独的作业运行。转到quote Matt

PowerShell作业有自己的内存和资源。当工作完成后,内存应该被移除。

因此,每次我们作为作业运行Send-Mailmessage时,都会正确地创建和处理连接。我还会将其传输到Wait-Job | Receive-Job,以自然地限制速率,查看输出,并防止任何可能在理论上可能发生的内存问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Start-Job -ScriptBlock {
  Send-MailMessage -From 'mymail' -To 'theirmail' -SmtpServer 'fqdn' -Attachments "$($args[0])\1.pdf", "$($args[0])\2.pdf" -Subject 'subject' -Body ("test")
} -ArgumentList $PSScriptRoot | Wait-Job | Receive-Job

使用此方法不会产生错误,并应减少SMTP服务器上的负载。

票数 5
EN

Stack Overflow用户

发布于 2017-04-11 08:37:53

该错误似乎表明存在传输层问题。如果不了解您的网络架构,就很难确定。试试这个:

可能会在foreach循环中添加一个等待,以查看是否有服务器正在节流(因为缺少更好的单词)您的消息。如果没有对服务器配置的访问,您的黑客很可能是最好的处理方法。

就您的尝试/捕获解决方案而言,这将在您的终端上产生最快的成功,但是,它将增加网络流量。你本质上是蛮横的,强迫你的方式越过任何你正在触及的限制。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43349726

复制
相关文章
【Nginx】磁盘文件写入飞地发
文章继续。什么时候Nginx当用户请求一个文件,这将无法读取该文件的内容加载到内存,然后从内存发送,但电话sendfile况下,从内核直接发送出去。这样做显然效率要更高。Nginx也为我们封装好了一系列的接口。以下就来说明怎样发送一个磁盘文件给client。
全栈程序员站长
2022/07/05
9450
【Nginx】磁盘文件写入飞地发
nodejs写入json文件_json文件可以删除吗
哈喽!nodejs的文件系统,接触过node的对node的文件系统肯定不会陌生,这两天我就在思考一个问题,我是否可以在本地操作我的本地json文件,这样一个本地的文本数据库就有了,如果是便签之类,记录的软件,我完全可以不用连后台的数据库,我可以自己操作本地的json文件,自己用node写后台,答案是肯定的,下面我们就一起来实现一下吧,对本地json文件的增、删、改、查
全栈程序员站长
2022/11/04
2.9K0
nodejs写入json文件_json文件可以删除吗
将List<Map>中的datas转换为json格式写入文件
private static boolean writeToTextFileByJson(List<Map<String, Object>> datas, String title, String columns, String fileName, String encode) { final BufferedWriter bw; boolean flag = true; try { boolean hasExists = new File(fileName).exists();
用户3003813
2018/09/06
6.6K0
Python将数据写入txt文件_python将内容写入txt文件
readlines() 会把每一行的数据作为一个元素放在列表中返回,读取所有行的数据
全栈程序员站长
2022/11/11
12.5K0
使用C#将json字符串作为对象存入MongoDB
      今天刚好在工作中碰到一个小问题,并愉快的解决了,权当将其记录下来,供人查阅,首先声明本人是个忠实的微软技术爱好者,主要使用的也是.NET语言。下面进入正题。      今天在向mongodb中导数据的过程中,使用了MongoDB官方的驱动(可以在Nuget中直接安装),然后读取一个json字符串并将其直接写入到mongdb中,就是普通的mongdb操作,本以为不会有什么问题,谁知通过mongovue客户端打开一看,只是存入了一个string类型的对象,mongdb并没有自动解析成Document
魏守峰
2018/04/28
3.2K0
Python:将一个 csv 文件转为 json 文件存储到磁盘
我也不是一次编写完成的,是在不断的试错中一步一步的解决这个问题的,令我印象最深刻的就是这个sort函数的用法,需要传入一个回调函数,这里是以列表元素的最后一个值作为key,我之前在做的时候忘记了题目中已经给了总分,还使用了sum([int(j) for j in x[1:]])这个排序,多此一举。
wsuo
2020/07/30
2.3K0
Python:将一个 csv 文件转为 json 文件存储到磁盘
.net c# json转对象 对象转json
.net和java中操作json不像php那么轻巧方便,之前我使用.net json转对象,需要创建一个json实体类,繁琐至极。
高久峰
2023/07/02
3720
jackson将json转换为json对象
高久峰
2023/07/02
3420
springcloud 返回的数据为XML 而不是JSON
本人的原因是因为引入了jackson-dataformat-xml依赖导致的,下面查看自己项目是否包含此依赖,如果包含的话,可以去掉。 有的人添加了下面注解后可以解决,不过我这里没有解决。还是依靠上图
qubianzhong
2019/04/01
2.3K0
springcloud 返回的数据为XML 而不是JSON
Python对象写入json文件,小括号变中括号咋解决呢?
前几天在Python交流白银群【凡人不烦人】问了一道Python处理的问题,如下图所示。
前端皮皮
2022/08/17
1.3K0
Python对象写入json文件,小括号变中括号咋解决呢?
如何在Node.js中读取和写入JSON对象到文件
本文翻译自How to read and write a JSON object to a file in Node.js
ccf19881030
2020/10/28
22.1K0
Python: 将TXT文件写入MySQ
安装MySQLdb时,报错缺少Visual C++ 9.0。解决方法:下载并安装MySQL-python 1.2.5 . https://pypi.python.org/pypi/MySQL-python/1.2.5
py3study
2020/01/07
2.1K0
.NET Core的日志[4]:将日志写入EventLog
面向Windows的编程人员应该不会对Event Log感到陌生,以至于很多人提到日志,首先想到的就是EventLog。EventLog不仅仅记录了Windows系统自身针对各种事件的日志,我们的应用也可以利用提供的API将日志消息写到EventLog中。与EventLog相关的API都定义在System.Diagnostics.EventLog这个类型中,我们不仅仅可以利用它读取、写入和删除日志,还可以使用它来创建和删除Event Source。.NET Core的日志模型利用EventLogLogger
蒋金楠
2018/01/15
8810
.NET Core的日志[4]:将日志写入EventLog
python 将读取的数据写入txt文件_c中怎样将数据写入txt文件
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
6.4K0
19.JAVA-从文件中解析json、并写入Json文件(详解)
json与xml相比, 对数据的描述性比XML较差,但是数据体积小,传递速度更快.
诺谦
2019/12/19
12.2K0
React技巧之将useState作为对象
原文链接:https://bobbyhadz.com/blog/react-type-usestate-object[1]
chuckQu
2022/08/19
9560
将 windows 磁盘作为共享盘挂载到 Linux 上
在 Linux 处理组学数据,硬盘真是经不起消耗的东西。而本地办公的电脑主要以开浏览器、看文献、交流、做PPT等为主,除了C盘小的时候容易炸,其他磁盘使用量很少。所以我最近遇到了工作站没法装大点的测序数据,但 PC 却有好几个盘上 T 的空闲。这篇文章就简单做个笔记,记录下如何将 Windows 的磁盘共享给 Linux 存数据使用。
王诗翔呀
2023/02/28
4.9K0
将 windows 磁盘作为共享盘挂载到 Linux 上
.NET性能优化-使用内存+磁盘混合缓存
其实这个问题比较简单的是吧?Redis 其实属于网络存储,我对照下面的这个表格,可以很容易的得出结论,既然网络存储的速度慢,那我们就可以使用内存 RAM 存储,把放 Redis 里面的数据给放内存里面就好了。
InCerry
2023/03/08
4240
.NET性能优化-使用内存+磁盘混合缓存
python将print输出结果写入文件
重定向标准输出流有两种方式,既可以在每个print方法中进行重定向,如下所示:
种花家的奋斗兔
2020/11/13
10.9K0
点击加载更多

相似问题

将浮动导航元素保持在一条线上

12

将光标位置保持在textView Swift的底线上

124

如何将标识与导航条对齐?

18

如何将文本保持在与图标相同的行中?

13

无法将CSS箭头保持在与标题相同的行中

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文