- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个在多个服务器上运行的脚本。一些服务器使用 sSMTP,一些服务器使用 postfix。
我想知道我的服务器在运行时运行的是哪个版本的sendmail,因为-t
在sSMTP中不被支持但是是强制性的在后缀
现在挑战开始了。
sendmail -V
sSMTP 变体输出 sSMTP 2.64(根本不是 sendmail)
但postfix 变体没有用于显示版本的 -V
选项。
我设法通过以下代码片段完成了它。
VER=$(sendmail -V 2>/dev/null)
if [[ "sSMTP" == $VER* ]]; then
echo $BODY | sendmail $EMAIL #sSMTP
else
echo $BODY | sendmail -t $EMAIL #postfix
fi
是否有更有效的方法来实现这一点?
我想找到我的服务器中的 sendmail 变体。不仅仅是后缀或 sSMTP。
最佳答案
这个怎么样?
type -p sendmail |
xargs dpkg -S
Some packages将它放在 /usr/lib
中,将其他放在 /usr/sbin
中,等等。这显然要求它们位于您的 PATH
中。
dpkg -S
告诉你安装文件的包的名称,type -p
用于查找你的 sendmail
PATH
这样我们就可以将其传递给 dpkg -S
。这显然需要基于 Debian 的发行版(Ubuntu、Mint,你有什么)。
在 ssmpt
系统上,PATH
上有 /usr/lib
,输出是
ssmtp: /usr/lib/sendmail
在 PATH
略有不同的 Postfix 系统上,
postfix: /usr/sbin/sendmail
我不认为我有可以尝试此操作的 Exim 或 Qmail 系统,但可以预见它们应该是相似的。
顺便说一句,如果您想通过 echo
的管道将多行字符串(例如电子邮件)传递给 sendmail
,您将需要引用多行变量以使其工作。
echo "$body" | sendmail -t
如果您想使用sendmail -t
,"$body"
应该包含To:
header for sendmail
来解析——这就是 -t
选项的作用,所以我认为在这种情况下您不需要带有收件人地址的变量。
此外,不要为您的私有(private)变量名使用大写字母; uppercase variable names are reserved for system use.
最后,正如其他地方已经评论的那样,我相信 SSMTP 和 Postfix 都支持 sendmail -t
,就像我见过的几乎所有其他 Sendmail 实现一样。所以最后,我认为您实际上不需要此代码来实现该目标。
关于linux - 查找 sendmail 版本(sSMTP 或 Postfix 或其他),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39668980/
我有一个非常特殊的问题......我有一个安装了 LAMP 和 ssmtp 的 Ubuntu Server 12.04 并正确安装和配置。 现在我可以从我的系统(PC)发送邮件,但是当我将我的项目上传
我的问题是,每当我的服务器发送电子邮件时,发件人字段都会被覆盖。 From:应该是:Web Site Name 但是电子邮件是从以下地址发送到以下地址的: World Wide Web Owner
我想知道在 ssmtp 发送的电子邮件的主题行中插入当前日期/时间的语法。 每当系统重新启动时,我都有一个 cronjob 通过电子邮件发送系统日志的尾部。 这是定时任务: @reboot tail
我目前正在为学校开发一个项目,我正在尝试使用 sSMTP 将电子邮件从 java 发送到使用文本文件的用户。从命令行执行ssmtp email@gmail.com 正如 dave_thompson_
我使用的是 Web Hosting Buzz 经销商帐户。他们有一些非常严格的邮件发送规则,包括阻止使用 PEAR 发送经过身份验证的 SMTP 套接字邮件。在 WHB 论坛中有人建议这可以通过 sS
我按照这个说明设置了一个电子邮件客户端, http://zackreed.me/articles/39-send-system-email-with-gmail-and-ssmtp 一切正常,但当我使
实际上,如果我在 php 控制台 (php -a) 中运行邮件功能,它就可以工作,但是如果我在 php 脚本上执行它并从 chrome 中执行它,它就不起作用。 我将 Nginx 与 PHP-FPM
我使用“ssmtp”作为邮件客户端向 Ubuntu Linux 上的远程邮件服务器发送电子邮件。我知道 ssmtp.conf 中有“UseTLS”和“UseSTARTTLS”选项,可以使 ssmtp
我需要在 delbian linux 中发送电子邮件。如何发送?我在 256 MB 的 linux 机器上运行我的服务器,我听说 postfix 和 sendmail 太过分了。 最近遇到ssmtp,
我创建了以下 linux 脚本: #!/bin/sh tempfront=27 tempreartop=60 temprearbottom=65 if [ "$tempfront" -gt 26 ]
今天在安装 ssmtp 以使用终端发送电子邮件后,我每半小时收到一封电子邮件: from: root @gmail.com to: root date: Wed, Sep 12, 201
我有一个在多个服务器上运行的脚本。一些服务器使用 sSMTP,一些服务器使用 postfix。 我想知道我的服务器在运行时运行的是哪个版本的sendmail,因为-t在sSMTP中不被支持但是是强制性
您好,我有安装了 ssmtp 的 RHEL5 ssmtp-2.61-22.el5.i386.rpm 我的/etc/ssmtp/ssmtp.conf 更新如下:- AuthUser=mymail@gma
我已经用 ssmtp 设置了一个 ubuntu 机器。 我的网站有一个 mailto 标签,它询问浏览器它想如何发送电子邮件,但我希望它使用 ssmtp 设置自动发送而不询问用户。 Testing 我
我正尝试从 centos 机器发送邮件,但我遇到了问题。我在我的 linux 机器上安装了“邮件”和 ssmtp,当我尝试发送邮件时收到了这个响应。 ssmtp: 550 invalid DNS MX
正如标题/标签所说,我在 Linux 上为 PHP 服务器运行 sSMTP。 每当我尝试发送电子邮件时,我都会收到这些错误(这些错误不会出现在 PHP 中,只会出现在日志/“sudo service
我是一名优秀的程序员,十分优秀!