我想使用 bash 脚本(Python 是第二好的)来定期(每小时)监控我的邮件服务器是否在线并运行。
我知道有针对此任务的专用解决方案(Nagios,...),但我确实需要一些简单的东西,可以将其用作 cronjob。只能看到邮件服务器还活着。
我知道如何通过 telnet 与邮件服务器通信,即:
telnet mail.foo.org 25
EHLO example.com
mail from:
rcpt to:
...
Run Code Online (Sandbox Code Playgroud)
但这是互动的。是否可以使用脚本检查邮件服务器正在通信?显然,我不想全程发送电子邮件。我只是想测试邮件服务器是否正在响应。
我跑mc,并试图安装卷曲和后缀在shell: apt-get install curl postfix。出现了一个 postfix 的配置对话框,在按下 Ctrl-o(切换显示/隐藏 MC)两次后,我无法再读取配置消息,所以我用 F10 退出了 MC。apt-get 进程仍然存在,我用sudo kill xxxx. 现在 apt-get 不起作用。
我试过了 apt-get -f install
X@X ~ % LC_ALL=C sudo apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
exim4-config lsb-invalid-mta
The following packages will be REMOVED:
postfix
The following NEW packages will be installed:
exim4-config lsb-invalid-mta
0 upgraded, 2 newly installed, 1 …Run Code Online (Sandbox Code Playgroud) 我刚刚做了 [a test][1] 告诉我我的网关(debian挤压)端口 110 从外面是可见的。
这是一个带有两个网卡的盒子,eth0 用于我的内部网络(192.168.1.0/24),eth1 进入“互联网”(作为 ppp0)。
当我运行 postfix、使用该框使用 fetchmail 收集邮件以及使用 pop3 (popa3d) 由内部框收集邮件时,外部连接上的开放端口 110 是否必要?
只要我的 postfix 有一个带有这些行的 main.cf,一切都好吗?
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.1.0/24
inet_interfaces = 192.168.1.1, 127.0.0.1
Run Code Online (Sandbox Code Playgroud)
其中 192.168.1.0/24 是我的家庭网络,192.168.1.1 是 eth0?
还是我愚蠢并打开了一个我应该关闭或对外部网络不可见的端口?
我正在使用postfixmaildir 格式。存储在 maildir 中的消息的文件名如下所示:
1386021659.27745_1.alpha:2,S
Run Code Online (Sandbox Code Playgroud)
我知道第一部分是纪元时间,其余部分不确定。但我想要一些对人更友好的名字,比如
2013-12-18__120502.sender_or_subject_of_the_message:2,S
Run Code Online (Sandbox Code Playgroud)
我需要经常操作单个消息/文件(这就是我首先使用 maildir 的原因)。有一些更具描述性的文件名会有所帮助。
我可以设置这个postfix吗?
我已经成功地安装了具有虚拟域和 TLS 支持的 Postfix/Dovecot,如本文所述 - https://geekpeek.net/postfix-with-dovecot/ ...
但是遇到了问题。我只能向我的域区域中的人发送电子邮件(blabla例如)。这意味着我可以从admin@blabla.comto发送电子邮件info@blabla.com。但是,当我尝试从我的 google 帐户向此地址发送电子邮件时,出现以下错误:
postfix/smtpd[19211]: connect from mail-wi0-f172.google.com[209.85.212.172]
Sep 10 18:23:17 amazon-ws.fs.local postfix/smtpd[19211]: NOQUEUE: reject: RCPT from mail-wi0-f172.google.com[209.85.212.172]: 554 5.7.1 <info@blabla.com>: Recipient address rejected: Access denied; from=<{myaccount}@gmail.com> to=<info@blabla.com> proto=ESMTP helo=<mail-wi0-f172.google.com>
Sep 10 18:23:17 amazon-ws.fs.local postfix/smtpd[19211]: disconnect from mail-wi0-f172.google.com[209.85.212.172]
Run Code Online (Sandbox Code Playgroud)
收件人地址被拒绝:访问被拒绝;
我所能理解的是我的 postfix 服务器拒绝了这封邮件,但不明白为什么。后缀配置 ( main.cf) 附在下面:
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
broken_sasl_auth_clients = yes
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/libexec/postfix
data_directory = /var/lib/postfix
debug_peer_level …Run Code Online (Sandbox Code Playgroud) (编辑:这不仅仅适用于 postfix;这只是我注意到/调试它的地方)
我已经安装了 postfix,但是当它启动并创建它的 chroot 时,它会得到一个空副本,/etc/resolv.conf这意味着它无法解析任何域。
我在各种网络脚本中添加了一些日志记录以查看resolve.conf何时被擦除/重新填充以及postfix何时启动......
这是启动时的日志:
Sun Mar 27 19:12:30 UTC 2016
EXECUTE: root + /sbin/resolvconf2 -d eth0 -f
Sun 27 Mar 19:12:31 UTC 2016
Postfix startup script
Sun Mar 27 19:12:37 UTC 2016
EXECUTE: root + /sbin/resolvconf2 -a eth0
Run Code Online (Sandbox Code Playgroud)
请注意,在调用 resolvconf 以擦除配置然后重新填充它之间有 7 秒的时间。在此期间,/etc/resolv.conf 实际上是空的。postfix(和许多其他服务)在这些调用之间启动。
在清除/重新创建 resolvconf 之间的巨大间隙中启动服务似乎很奇怪。
这是 Raspbian 的全新安装,安装了 Postfix,没有其他更改。
编辑:查看系统日志,由于在 dhcpcd 开始和完成之间没有 DNS,实际上有很多事情失败了。其他服务试图同时启动似乎有缺陷?
我想将所有传入的电子邮件*@example.com(来自互联网)重定向到我的服务器上运行的 Python 脚本,该脚本将执行各种工作。
example.com,将其定向到我的服务器apt-get remove postfix和apt-get remove exim4,所以我准备开始重新安装其中一个(哪个允许此特定任务的最短解决方案?)将所有传入电子邮件定向*@example.com到 Python 脚本的主要步骤是 什么?(包括:告诉 MTA 接受来自服务器外部、整个互联网等的电子邮件)
我有一个网站,上面有一些基于 PHP 的 CMS,我是唯一的用户。这个网站有一个简单的联系表格(姓名、电子邮件、电话和正文),我可以通过它收到来自非注册用户的邮件。
一方面,我想将电子邮件从该表单直接传输到我的电子邮件帐户。
另一方面,我不想设置任何 DNS 记录,因为我至少有一次垃圾邮件目录没有问题,因为我会将站点机器的 IP 放在一个好列表中。
我知道我可以通过三种方式在任何 Linux 系统上使用 SMTP 协议(通过 PHPmail()功能):
postfix)。ssmtp),其中还包括向可能的黑客显示ssmtp配置文件中的代理电子邮件帐户的地址和密码,以便该程序可以使用该帐户作为代理。是否有sendmail 二进制文件这样的概念,如果有,它与前两个选项有何不同?
我已经设置了 postfix 和一个本地用户myuser。
一封电子邮件myuser@mydomain.com到达没有问题,所以基本的后缀设置很好。
然后我设置了虚拟别名:
mylongname@mydomain.com myuser@mydomain.com
Run Code Online (Sandbox Code Playgroud)
在 main.cf 中:
mydestination: mydomain, localdomain
virtual_alias_maps = hash:/path_to_virtual_aliases
Run Code Online (Sandbox Code Playgroud)
我还创建了数据库 postmap /path_to_virtual_aliases
当我向 发送电子邮件时mylongname@mydomain.com,我收到此错误:
postfix/local[2341]: error: open database /etc/aliases.db: No such file or directory
postfix/local[2341]: warning: dict_nis_init: NIS domain name not set - NIS lookups disabled
postfix/local[2341]: warning: hash:/etc/aliases is unavailable. open database /etc/aliases.db: No such file or directory
postfix/local[2341]: warning: hash:/etc/aliases: lookup of 'myuser' failed
postfix/local[2340]: F1D9C233E9A: to=<myuser@localdomain>, orig_to=<mylongname@mydomain.com>, relay=local, delay=2239, delays=2239/0.03/0/0.02, dsn=4.3.0, status=deferred (alias database …Run Code Online (Sandbox Code Playgroud) 我将 Ubuntu 16.04 与 Nginx 和一些 WordPress 网站一起使用。有时我很长时间(> = 1 个月)不访问某个站点,这可能是该站点已关闭。
如果我的一个 Nginx-WordPress 站点关闭(没有提及原因),我正在寻找一个小型实用程序,它将通过电子邮件发送我的 Gmail 帐户。
curl -l -L在每个域上添加每周 cron 任务并将其输出保存到文件中。这看起来很简单,但实际上很复杂(虽然不一定复杂),也可能有点脆弱。一个专门的、公共的、维护的实用程序可能对我更好。
我不想使用一些宏伟的第三方网络监控服务,如 Nagios、Icinga、Zabbix、Shinken 等,而且由于这个特殊原因,它们似乎都有些矫枉过正。
我已经安装Postfix了internet-site配置,以便该工具可以使用 Postfix。我只使用 Postfix 默认值,我可以添加一些默认配置internet-site,也许不需要添加和配置 DNS 记录。
一个用于重新配置 Postfix 的交互式程序的实用程序可能会减轻我的痛苦;我不必用很多 SMTP 配置数据填充我的 Ubuntu-Nginx-WordPress-Environment 安装脚本。也许在那之后我只需要设置一些 DNS 记录,就是这样。任何可以以这种方式或另一种方式简化流程的东西对我来说也是一个选择。
即使 Gmail 错误地将我的第一封电子邮件(或第一批电子邮件)移至垃圾邮件,我也可以将其放入白名单。
有没有我可以使用的实用程序来实现这种行为?
我安装了 postfix 和 dovecot 并设置了 SPF DKIM 和 DMARC,一切运行顺利,直到我的 Linode 帐户报告使用率很高,检查后我发现我的帐户中有大量垃圾邮件。我有关机后缀。
邮件从我的域发出noidadeafsociety,但用户不是我创建的,这些是垃圾邮件发送者创建的虚构用户。
sender_fullname: www-data
sender: justin.f@noidadeafsociety.org
Run Code Online (Sandbox Code Playgroud)
上述用户在我的虚拟用户 mysql 数据库中不存在。
请注意标题中指向 php 脚本的以下行
X-PHP-Originating-Script: 33:isyfoyvr.php(1189) : runtime-created function(1) : eval()'d code(1) : eval()'d code
Run Code Online (Sandbox Code Playgroud)我无法通过端口 25 在服务器上远程或本地 telnet 到我的 ip
以下是我的postfix main.cf文件的相关部分
smtp_tls_security_level = may
smtpd_tls_security_level = may
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = brahmaforces.com
alias_maps = hash:/etc/aliases …Run Code Online (Sandbox Code Playgroud)