首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sendMail.exe替代

sendMail.exe替代
EN

Server Fault用户
提问于 2020-11-06 18:08:52
回答 2查看 516关注 0票数 0

有一堆内部批处理脚本,而不是利用sendEmail.exe,这是一个旧的perl自动电子邮件应用程序,在这里可以找到:

用于sendEmail.exe的github

问题是,随着我们迁移到office365,以及我们的安全策略,smtp需要启动。SendEmail不支持startls (或者有startls选项).虽然ssl和tls都有选项: yes/auto/no,但它们都不起作用。

一种选择是用python和smtplib库创建一些新的东西来代替sendEmail.exe,但是我不想在这里重新创建轮子。

还有其他受欢迎的免费公共事业或程序,我可以很容易地交换出来来填补这个角色吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2020-11-09 10:03:44

我为您提供了另一个解决方案,与Stunnel一起使用的是您以前信任的C0。Stunnel确实支持STARTTLS,它在Linux/Windows/MacOS/*NIX下运行。

你可能会问,Stunnel现在在说什么?嗯,这个:

Stunnel是一种代理,旨在向现有客户端和服务器添加TLS加密功能,而不对程序代码进行任何更改。

因此,它基本上使您的旧解决方案能够说TLS;Stunnel负责加密部分,其余部分由SendMail.exe完成。

对于您来说,这可能是最简单的解决方案;您只需要添加Stunnel,而不是替换SendMail.exe,这可以非常快地完成。

票数 1
EN

Server Fault用户

发布于 2020-11-07 15:42:23

我将用一种使用PowerShell的更本地的方法来代替它。由于Send-MailMessage现在已经过时,这就留给我们System.Net.MailMailMessage & SmtpClient。据推测,您的脚本可以将变量(并且可以填充缺失的变量)传递给:

代码语言:javascript
复制
$mailMessage = New-Object System.Net.Mail.MailMessage($fromAddress, $toAddress, $subject, $body)
$smtpClient = New-Object System.Net.Mail.SmtpClient($smtpServer, $smtpPort) 
$smtpClient.EnableSsl = $true
$smtpClient.Credentials = New-Object System.Net.NetworkCredential($smtpUsername, $smtpPassword)
$smtpClient.Send($mailMessage)
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1041570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档