我已将 sendmail 配置为通过我的 GMail (Google Mail) 帐户发送电子邮件,即通过smtp.gmail.com编辑/etc/mail/sendmail.mc和重新生成 sendmail.cf:
-dnl define(`SMART_HOST',`smtp.your.provider')
+define(`SMART_HOST',`[smtp.gmail.com]')
-dnl define(`confAUTH_OPTIONS', `A p')dnl
+define(`confAUTH_OPTIONS', `A p')dnl
-dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
-dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
+define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
+FEATURE(`authinfo',`hash -o /etc/mail/authinfo.db')dnl
FEATURE(`mailertable',`hash -o /etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash -o /etc/mail/virtusertable.db')dnl
-dnl MASQUERADE_AS(`mydomain.com')dnl
+MASQUERADE_AS(`gmail.com')dnl
Run Code Online (Sandbox Code Playgroud)
以上是我对 sendmail.mc 更改的缩短差异。
我/etc/mail/authinfo使用我的凭据(我的 GMail 帐户的用户名和密码;已编辑)创建:
AuthInfo:smtp.gmail.com "U:user@gmail.com" "P:password" "M:PLAIN"
AuthInfo: "U:user@gmail.com" "P:password" "M:PLAIN"
Run Code Online (Sandbox Code Playgroud)
但是此设置使“sendmail”使用 smtp.gmail.com …
我的专用服务器上有大约 6 个站点(运行 centos5),所有使用 php 邮件功能发送的电子邮件都是由 nobody@servername.hostname.com 发送的,例如“已收到:来自nobody by servername.hostname.com 与本地(Exim 4.69) ”。有什么方法可以更改它以显示适当的域?
我家有一台小型服务器(Ubuntu 10.04),我想将root的电子邮件转发到我的 gmail 托管域,以获取安全通知以及其他什么不。
我现在可以使用 sendmailmail some@external.com来接收邮件。
但是,添加地址/root/.forward实际上并没有转发消息。我在日志中得到以下信息:
Dec 22 14:04:37 batcave sendmail[4695]:
oBML4bAT004695: to=<root@batcave>, ctladdr=aburns (1000/1000),
delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30075,
relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (oBML4bJ9004696
Message accepted for delivery)
Dec 22 14:04:39 batcave sm-mta[4698]: STARTTLS=client, relay=[69.145.248.18],
version=TLSv1/SSLv3, verify=FAIL, cipher=DES-CBC3-SHA, bits=168/168
Dec 22 14:04:40 batcave sm-mta[4698]: oBML4bJ9004696: to=<root@batcave.net>,
ctladdr=<aburns@bresnan.net> (1000/1000), delay=00:00:03, xdelay=00:00:03,
mailer=relay, pri=120336, relay=[69.145.248.18] [69.145.248.18],
dsn=2.0.0, stat=Sent (OK 01/D4-00853-216621D4)
Run Code Online (Sandbox Code Playgroud)
您可以看到我的本地 sendmail 实例在哪里接受它,然后将它交给我的 ISP,但地址错误 (root@batcave.net)。
我有一个 Linux 网络应用程序。
我是否需要打开端口 25 才能仅使用 PHP 邮件功能发送电子邮件?如果我必须打开端口 25,如何禁用接收电子邮件?
编辑: 我问是因为我知道 sendmail 是我服务器上的消息传输代理。
我已经在这里坐了几个小时,现在试图让 sendmail 通过外部 SMTP 服务器发送电子邮件。我已经非常接近了,但现在我完全被困住了。sendmail 似乎没有发送我设置的身份验证信息。有没有我遗漏的配置行?
请帮忙。:(
运行 CentOS 5.7
编辑:
根据要求,我将从我的 sendmail 中添加一些内容。
我指定使用身份验证信息的地方:
FEATURE(authinfo',hash -o /etc/mail/auth/client-info.db')dnl
/etc/mail/auth/client-info:
AuthInfo:in.mailjet.com "U:myusername" "P:mypassword" "M:PLAIN"
尝试发送电子邮件:
# sendmail -AM -t -v
to:myemail@gmail.com
from:root@mydomain.com
.
myemail@gmail.com... Connecting to in6.mailjet.com. via relay...
220 in6.mailjet.com ESMTP Mailjet
>>> EHLO mydomain.com
250-in6.mailjet.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
>>> STARTTLS
220 2.0.0 Ready to start TLS
>>> EHLO mydomain.com
250-in6.mailjet.com
250-PIPELINING
250-SIZE …Run Code Online (Sandbox Code Playgroud) 我想在 Sendmail 中禁用反向 DNS 查找。
我们有一个 SMTP 中继,运行 Sendmail,带有基于 IP 的 access.db。我们不需要反向查找,事实上,它们可能会导致响应时间延迟。这会在监控中触发警报......这让人们不高兴。
我进行了搜索,但找不到任何内容来禁用传入连接的反向 DNS 查找。显然,我不能只是终止所有 DNS 查找,因为这样就不会发送邮件。
提前致谢!
我需要一种方法来配置 sendmail,将每条消息的信封发件人设置为固定值(例如 foo@bar.com)。请注意,任何 MASQUERADE 功能/宏(据我所知)都没有回答这个问题:我还想覆盖信封用户并将其设置为固定值。
编辑:另外,我不想伪装标头发送者。所以 GENERICSTABLE + MASQUERADE_ENVELOPE 也不会削减它。我需要的是相当于命令行sendmail -f foo@bar.com
(理由:我被客户强迫通过一个身份验证中继,该中继坚持拥有给定的信封发件人地址 - 不,我并不是试图规避任何反垃圾邮件措施,我只是想发送 root 的邮件 - 以及其他管理内容 - 异地。它是一个应用程序服务器,所有邮件均由服务器发起,但发件人地址仍然需要有意义)
TIA。
网络上充满了如何禁用 cron 中的邮件的建议,就像这里所问的那样,阻止 linux 向我发送 cron 错误?. 是否真的没有全局配置标志可以设置为所有用户和所有命令禁用 cron 中的邮件。我真的不想告诉所有用户你必须添加
MAILTO=""
Run Code Online (Sandbox Code Playgroud)
或者
<command> > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)
到您的 crontab。
我将首先声明我不是 sendmail 方面的专家。我很少使用它,但在这种情况下,我必须为我的客户使用。
背景:
我的一个客户端有一个运行 Debian 7.7、Sendmail 8.14.4 和 OpenSSL 1.0.1e 的邮件服务器。它生成电子邮件(诸如帐户重置之类的内容)并将其发送给客户。我将其称为“服务器 A”。
由于 TLS 握手失败,从服务器 A 发送到域 *.outlook.com 中的任何邮件服务器的邮件(奇怪的是不包括 @outlook.com 邮件,这些邮件由 hotmail 处理)被推迟。这只是微软拥有的服务器的问题;其他一切都在工作。日志中的错误类似于:
sendmail[22213]: ruleset=tls_server, arg1=SOFTWARE, relay=mail.protection.outlook.com, reject=403 4.7.0 TLS handshake
sendmail[22213]: s2L9EakQ022098: to=<blah@microsoft.com>, delay=00:00:55, xdelay=00:00:31, mailer=esmtp, pri=181653, relay=mail.protection.outlook.com. [145.123.225.25], dsn=4.0.0, stat=Deferred
Run Code Online (Sandbox Code Playgroud)
注意:这些日志是编造的,因为我的客户不希望复制和粘贴内容,以免意外泄漏敏感数据。信息就在那里,我只是手动输入,所以忽略错别字等。
这就是我可以从日志中获得的全部信息,即使日志是 15(除此之外,系统开始成为磁盘绑定)。
问题:
握手的 tcpdump 显示服务器 A 正在连接到 Outlook.com,EHLO 成功,服务器 A 启动了 STARTTLS,然后 Outlook.com 以其证书链响应。所有这一切都很正常。
然后在服务器 A 收到微软证书链后,服务器 A 发送了自己的客户端证书。Outlook.com 然后断开了连接。
我们的客户端证书是我们用于组织内部验证的自签名证书,不应发布到 Outlook.com。
根据我有限的知识,我最好的猜测是,outlook.com 正在请求客户端证书进行验证(或者至少 sendmail 认为它请求证书),服务器 A 上的 sendmail 是有义务的。Outlook.com 然后断开连接,要么是因为证书无效,要么不是它所期望的。
两个问题:
为什么 sendmail 将客户端证书作为 …
我有两个后缀,一个用于接收邮件,另一个用于发送邮件,但我在外发邮件上签署 dkim 时遇到问题。我按照这个教程进行了操作。
\n日志也不能帮助我指出主要问题。OpenDKIM 运行良好:
\n\xe2\x97\x8f opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter\n Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)\n Active: active (running) since Fri 2021-06-18 17:39:40 UTC; 4s ago\n Docs: man:opendkim(8)\n man:opendkim.conf(5)\n man:opendkim-genkey(8)\n man:opendkim-genzone(8)\n man:opendkim-testadsp(8)\n man:opendkim-testkey\n http://www.opendkim.org/docs.html\n Process: 246310 ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf (code=exited, status=0/SUCCESS)\n Main PID: 246321 (opendkim)\n Tasks: 7 (limit: 4681)\n Memory: 2.8M\n CGroup: /system.slice/opendkim.service\n \xe2\x94\x9c\xe2\x94\x80246321 /usr/sbin/opendkim -x /etc/opendkim.conf\n \xe2\x94\x94\xe2\x94\x80246322 /usr/sbin/opendkim -x /etc/opendkim.conf\n\nJun 18 17:39:40 testmailcdo systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) …Run Code Online (Sandbox Code Playgroud)