我的服务器上有 Postfix 设置,以便我可以使用命令行发送外发邮件:
mail -s "Subject" address@example.com
Run Code Online (Sandbox Code Playgroud)
我在网上阅读的所有内容似乎都可以互换使用这两个术语。
我正在尝试在 ssh root 登录时创建电子邮件警报,因此我必须安装ssmtp和邮件实用程序。
然后我配置ssmtp.conf文件如下:
# Config file for sSMTP sendmail
# The person who gets all mail for userids < 1000
# Make this empty to disable rewriting.
#root=postmaster
#Adding email id to receive system information
root = rootuser@gmail.com
# The place where the mail goes. The actual machine name is required no
# MX records are consulted. Commonly mailhosts are named mail.domain.com
#mailhub=mail
mailhub = smtp.gmail.com:587
AuthUser=dmymail@gmail.com
AuthPass=plaintext password
UseTLS=YES
UseSTARTTLS=YES
# …Run Code Online (Sandbox Code Playgroud) 尝试sendmail使用wordpress 插件启动或发送邮件时,此错误显示在maillog:
"My unqualified host name (foo.bar) unknown; sleeping for retry"
Run Code Online (Sandbox Code Playgroud)
在谷歌搜索之后,最好的建议是“将 foo.bar 添加到 /etc/hosts 文件”,但它已经是:
127.0.0.1 localhost localhost.localdomain
127.0.0.1 foo.bar
Run Code Online (Sandbox Code Playgroud) 我无法从 ubuntu 14.04 上的全新 sendmail 安装向 google 发送邮件。DNS 记录似乎对 IP 没问题。一定是别的什么地方出了问题。
从命令行发送邮件:
sudo sendmail -v -Am -i myname@gmail.com;
Run Code Online (Sandbox Code Playgroud)
详细输出:
myname@fx1:/etc/mail$ sudo sendmail -v -Am -i myname@gmail.com;
myname@gmail.com... Connecting to aspmx.l.google.com. via esmtp...
220 mx.google.com ESMTP v1si55415385wja.21 - gsmtp
>>> EHLO staging.mydomain.com
250-mx.google.com at your service, [2a01:4f8:212:27c8::2]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
>>> STARTTLS
220 2.0.0 Ready to start TLS
>>> EHLO staging.mydomain.com
250-mx.google.com at your service, [2a01:4f8:212:27c8::2]
250-SIZE 35882577
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
>>> …Run Code Online (Sandbox Code Playgroud) 我在 Centos 服务器上使用 Sendmail 为 PHP 脚本发送电子邮件,但问题是邮件被传送到机器上的本地邮箱,而不是域的 MX 记录中指定的内容 - 实际上指向另一台机器我用于电子邮件。
我希望 sendmail 不尝试为机器设置的域在本地传递邮件,是否有一种简单的方法可以禁用本地传递?
该域不在本地主机名文件中。
我已经做了很多谷歌搜索,我看过:
但要么没有答案,要么不合适。
我不想中继到另一台服务器,我只想发送邮件而不管域。
提供一个例子:
我有两台服务器,一台是位于 mail.example.com 的邮件服务器和一台位于 example.com 的 Web 服务器,当我在 Web 服务器上使用 smtp 服务时,它当前将邮件路由到 example.com 上的本地邮箱,但是它应该转到mail.example.com上的邮箱
sendmail -bt 的输出返回:
地址测试模式(规则集 3 不会自动调用) 进入 > 3,0 info@example.com 规范输入: info @example 。电脑 Canonify2 输入:信息 Canonify2 返回:信息 规范返回:信息 解析输入:信息 Parse0 输入:信息 Parse0 返回:信息 ParseLocal 输入:信息 ParseLocal 返回:信息 Parse1 输入:信息 Parse1 返回:$# 本地 $:信息 解析返回:$# 本地 $:信息
这是一个关于避免外发邮件被归类为垃圾邮件的规范问题。
还相关:
我想知道如何防止来自我网站的电子邮件被标记为垃圾邮件?我正在使用发送邮件。
我正在尝试通过我的 ruby-on-rails 应用程序发送电子邮件。邮件都是用瑞典语写的(如果这确实有所作为?)。我不知道为什么他们总是被标记为垃圾邮件。
有什么我可以做的事情来最小化风险吗?
我已经重新阅读了关于这个的文档以及这里的其他帖子,这对我来说仍然很不清楚。我一直在测试各种事物理解之间的区别alias_maps,并virtual_alias_maps和我没有看到后缀使用这2个单独的设置。这是我到目前为止发现的(注意 - 我在与我的 Web 服务器相同的服务器中使用 postfix 作为空客户端来仅发送电子邮件):
1) /etc/aliases 文件:
root: me@somedomain.com
Run Code Online (Sandbox Code Playgroud)
当我将上述内容添加到alias_maps. 但是,我也注意到一些其他服务(如mail命令)不尊重这一点,并尝试将电子邮件直接发送到不存在的 root@mydomain.com(我认为myorigin这是添加@mydomain.com的后缀设置) . 为了解决这个问题,我然后添加了virtual_alias_maps
2) /etc/postfix/virtual
root me@someotherdomain.com
Run Code Online (Sandbox Code Playgroud)
添加上述内容后,所有服务都使用此虚拟别名电子邮件。我还注意到,一旦我添加了上述内容,即使fail2ban 也开始忽略我在/etc/aliases/文件中的初始设置并开始遵循虚拟文件中给出的电子邮件地址。
现在这让我更加困惑——
/etc/aliases/当虚拟别名映射中的电子邮件似乎覆盖它时,为什么我们需要?
拥有这两个单独的别名映射的目的是什么,我们何时决定何时使用什么?
为什么fail2ban(配置为发送到root@localhost)首先遵循alias_maps(/etc/aliases/) 中给出的电子邮件地址,然后决定忽略virtual_alias_maps添加过的那个地址?
为什么并非所有服务都读取 /etc/aliases 中提到的电子邮件别名,而它们仅在将电子邮件别名添加到虚拟别名映射中时才起作用?
从昨天开始,我已经花了几个小时,但仍然不确定。有人可以帮我清除我的困惑吗?
编辑:
这是使用mail root命令将电子邮件发送到 root 时的邮件日志。在 /etc/aliases/ 中提到了 root 的别名电子邮件。但是直到我将此根别名电子邮件从 移动aliases_maps到virtual_aliases_maps
在提及根电子邮件别名时记录/etc/aliases/:
Nov 14 16:39:27 Debian postfix/pickup[4339]: 0F12643432: uid=0 from=<root> …Run Code Online (Sandbox Code Playgroud) 我正在运行 Ubuntu Intrepid,并且一直在查看我的日志:
Aug 23 16:01:03 wp1 sm-mta[13700]: n7NFJIad013566: Warning: program /usr/sbin/sensible-mda unsafe: No such file or directory
Aug 23 16:01:03 wp1 sm-mta[13700]: n7NFJIad013566: SYSERR(root): Cannot exec /usr/sbin/sensible-mda: No such file or directory
Aug 23 16:01:03 wp1 sm-mta[13700]: n7NFJIad013566: Warning: program /usr/sbin/sensible-mda unsafe: No such file or directory
Aug 23 16:01:03 wp1 sm-mta[13700]: n7NFJIad013566: SYSERR(root): Cannot exec /usr/sbin/sensible-mda: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我现在有很多这样的消息,而我以前没有。查了一下,Ubuntu 似乎有一些特殊的 sendmail 软件包,这些软件包在我安装 sendmail 时可能尚未安装。
我需要“明智的mda”吗?没有人应该通过服务器进行身份验证或发送 - 它只是一个默认的本地 smtp 主机,设置为允许 Web 表单发布到电子邮件,并允许系统发送系统日志等。
为什么这些消息会开始出现?
我正在运行 Ubuntu 14.04 (Linux) 服务器。我已经在服务器上很好地安装和配置了Postfix和OpenDKIM;我可以发送电子邮件给自己用,如命令echo hi | sendmail root,和后缀/ opendkim将添加页眉,如Message-Id,Date和DKIM-Signature,将电子邮件转发到我的个人电子邮件地址,一切都很正常。
现在我想创建一个在Docker容器中运行的应用程序,并且可以同样轻松地发送电子邮件。特别是,我不想担心添加像 的标头Message-Id,也不想在容器本身内部进行太多配置或软件安装。
做这个的最好方式是什么?
有没有办法让容器sendmail在主机上运行可执行文件?
我尝试使用端口 25 上的 SMTP 协议从容器连接到 Postfix,但 Postfix 似乎以不同的方式处理以这种方式接收的消息;我认为它没有添加任何标题,因此该邮件被 gmail 完全拒绝为垃圾邮件(它甚至不足以放入我的垃圾邮件文件夹中)。
这里的邮件日志内容
Sep 28 23:35:52 dantooine postfix/smtpd[4306]: connect from unknown[172.17.0.95]
Sep 28 23:35:52 dantooine postfix/smtpd[4306]: DD457889B: client=unknown[172.17.0.95]
Sep 28 23:35:52 dantooine postfix/cleanup[4309]: DD457889B: message-id=<>
Sep 28 23:35:52 dantooine spamd[3175]: spamd: connection from localhost [::1]:59471 to port 783, fd 6 …Run Code Online (Sandbox Code Playgroud)