[root@arcade mail]# ls -l /etc/ | grep mail; ls -l /etc/mail; service sendmail start
drwxr-xr-x. 2 root root 4096 2011-01-27 20:06 mail
-rw-r--r-- 1 root root 272 2009-11-17 21:13 mailcap
-rw-r--r-- 1 root root 1968 2010-10-26 14:44 mail.rc
total 192
-rw-r--r-- 1 root root 469 2007-08-27 11:25 access
-rw-r-----. 1 root root 12288 2011-01-27 20:06 access.db
-rw-r--r--. 1 root root 0 2010-09-30 14:25 aliasesdb-stamp
-rw-r--r-- 1 root root 233 2007-04-12 15:35 domaintable
-rw-r-----. 1 root root 12288 2011-01-27 20:06 domaintable.db …Run Code Online (Sandbox Code Playgroud) 所以这是我的问题......我在一台机器上托管了两个站点,使用 apache 的虚拟主机。我想使用适当的电子邮件地址从两个不同的站点(domain.com 和 domain2.com)发送电子邮件。我目前在 php.ini 中有这个值:
sendmail_path = /usr/sbin/sendmail -t -i -fuser@domain.com
但是当我尝试从 domain2.com 上的脚本发送电子邮件时,它显然带有From: user@domain.com标题。Apache 不允许您在<VirtualHost>指令中设置这样的规则:
php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -fuser@domain2.com"
那么实现这一目标的最佳方法是什么?我已经尝试php_admin_value mail.force_extra_parameters "-fuser@domain2.com"从 domain2.com 的<VirtualHost>指令中进行设置,但所有电子邮件仍然来自 domain.com。有任何想法吗?
鉴于这样的事情:
xxx.net. CNAME surrogate-xxx.net.
www.xxx.net. CNAME surrogate-xxx.net.
mail.xxx.net. A 1.2.3.4
xxx.net. MX mail.xxx.net.
surrogate-xxx.net. A 4.3.2.1
Run Code Online (Sandbox Code Playgroud)
xxx.net 的邮件应该按照 MX 记录的指示转到 1.2.3.4,还是按照 CNAME 指向的 A 记录的指示转到 4.3.2.1。
我注意到我们的一台服务器(运行 Ubuntu)可以使用简单的“sendmail”命令将邮件发送到任何域(yahoo.com、gmail.com)。
但我无法弄清楚如何在新服务器中配置类似的设置。我在第一台服务器中看不到任何文件,例如“/etc/mail/sendmail.cf”。
这是如何运作的 ?它是否使用其他一些 SMTP 服务器来进行实际的邮件传递?我在哪里可以找到这些设置?
有时,电子邮件在发送给使用该outlook.com系统作为其电子邮件服务器的收件人时无法通过。他们的 MX 记录解析正常,但他们的 A 记录(类似example-com.mail.protection.outlook.com)超时。
sendmail在这里使用,我不是专家。我继承了配置,对设置不太了解。我知道的一件事是它已经多年没有被编辑过,而且没有任何迹象表明有问题。
不知道是不是故意的,但是dig example-com.mail.protection.outlook.com15秒后响应超时,然后再挖就成功了。
我们正在使用我们自己的 BIND DNS 服务器进行缓存,它也至少有那么长时间没有重新配置。
看来我们的sendmail系统在找不到主机后放弃了example-com.mail.protection.outlook.com。发生这种永久性故障是否合适?是否应该改为临时故障?标准是什么?是outlook.com 错了还是我们的sendmail 错了?
编辑
供您参考,以下是来自 的相关日志条目maillog,屏蔽敏感信息example.com代表收件人服务器,example.net代表我们自己的domain.
Jun 16 09:28:28 myhostname sendmail[8613]: [ID 801593 mail.info] s5GDSOZ4008613: from=websusr, size=16975, class=0, nrcpts=2, msgid=<201406161328.s5GDSOZ4008613@myhostname.example.net>, relay=websusr@localhost
Jun 16 09:28:28 myhostname sendmail[8617]: [ID 801593 mail.info] s5GDSSIP008617: from=<websusr@myhostname.example.net>, size=17222, class=0, nrcpts=2, msgid=<201406161328.s5GDSOZ4008613@myhostname.example.net>, proto=ESMTP, daemon=MTA-v4, relay=localhost [127.0.0.1]
Jun 16 09:28:28 myhostname sendmail[8613]: [ID 801593 mail.info] s5GDSOZ4008613: to="John Doe" <john@example.com>, …Run Code Online (Sandbox Code Playgroud) 我有一个配置为 smarthost 到下游资源的 sendmail 服务器。目前的配置是:
define(`SMART_HOST',`relay:[vip.example.local]')dnl
Run Code Online (Sandbox Code Playgroud)
因为它是发送A备案vip.example.local。有人告诉我,这违反了 IETF RFC-5321 第 5.1 节,其中规定:
一旦 SMTP 客户端从词法上识别出邮件将
被传送到的域以进行处理(如第 2.3.5 和 3.6 节所述),必须执行 DNS 查找以解析域名(RFC 1035
[2])。名称应为完全限定域名
(FQDN):从部分名称或本地
别名推断 FQDN 的机制不在本规范范围内。由于
问题的历史,用于初始提交消息的 SMTP 服务器不应该做出这样的推断(消息提交服务器 [18] 有
更多的灵活性)和中间(中继)SMTP 服务器不能做出这样的推断。查找首先尝试定位与名称关联的 MX 记录。如果找到 CNAME 记录,则将结果名称作为初始名称进行处理。如果返回一个不存在的域错误,则必须将这种情况报告为错误。如果返回一个临时错误,则消息必须排队并稍后重试(参见第 4.5.4.1 节)。如果返回一个空的 MX 列表,则该地址被视为与隐式 MX RR 相关联,优先级为 0,指向该主机。如果 MX 记录存在,但没有一个可用,或者隐式 MX 不可用,则必须将这种情况报告为错误。
如果为给定名称找到一个或多个 MX RR,则 SMTP 系统不得使用与该名称关联的任何地址 RR,除非它们是使用 MX RR 定位的;上面的“隐式 MX”规则仅适用于
不存在 MX 记录的情况。如果 MX 记录存在,但
它们都不可用,则必须将这种情况报告为错误。当查找与 MX RR 关联的域名并获得
关联的数据字段时,该响应的数据字段必须
包含域名。当被查询时,该域名必须返回
至少一个地址记录(例如,A 或 …
如何使用 URL 发送邮件swaks。例如,您将如何发送以下邮件?
我尝试过但没有成功
swaks -t recipient@mail.com \
--body link<https://en.wikipedia.org/wiki/Main_Page>
Run Code Online (Sandbox Code Playgroud)
因为如果我们将消息显示为原始消息,就会出现这样的情况。
默认情况下,sendmail(我在 RHEL4 上有 8.13 版)只允许本地邮件。
我想允许来自特定网络的邮件通过系统中继,所以我根据来自不同地方的建议做了以下操作:
仅此一项不起作用,因此我将以下内容添加到 sendmail.mc FEATURE(access_db)dbl
现在,问题是它也允许从其他域访问。为了测试它,我从访问中删除了 8.37 RELAY,并将电子邮件从字段更改为 abhinav@notmydomain.org
但是,我仍然收到邮件。
配置它的正确方法是什么,以便只中继来自特定子网的邮件?
我的 ISP 已开始阻止端口 25,因此我无法再通过我的专用服务器发送电子邮件。
我有几个选择:
哪个更可取?
我正在 Windows 上设置一个 Apache 服务器 (2.2.14),并从现有的 XAMPP 配置中借鉴想法。我现在正在尝试为 PHP (5.3.1) 设置电子邮件功能。(它需要能够处理附件,就像 XAMPP 服务器一样。)
我注意到 XAMPP 带有用于 Windows 的假 sendmail,但是关于配置的一些事情对我来说没有意义。
以下是 XAMPP 的几行php.ini:
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = "C:\xampp\sendmail\sendmail.exe -t"
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为:
sendmail_path 默认被注释掉我想知道是否sendmail.exe有必要。所以,我的自定义Apache服务器,它不会对sendmail.exe,我编辑php.ini添加正确的信息SMTP,smtp_port和sendmail_from。有了它,它就可以发送邮件了!但它很慢。
然后我回到XAMPP服务器并重命名sendmail目录,希望禁用sendmail。那种工作 - 我的 PHP 脚本声称已发送,但什么也没发生。
所以我很困惑。
sendmail_path …sendmail ×10
email ×5
smtp ×4
apache-2.2 ×2
linux ×2
php ×2
email-server ×1
gmail ×1
mailbox ×1
outlook ×1
rfc ×1
timeout ×1
ubuntu ×1
unix ×1
virtualhost ×1