我有两个后缀,一个用于接收邮件,另一个用于发送邮件,但我在外发邮件上签署 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) 目标:将文件服务器上的文本文件放入我的 gmail 收件箱。
文件服务器正在运行 Ubuntu Server 8.04 我目前不时通过 SSH 进入它并检查日志、硬盘驱动器的 SMART 统计信息等。我正在考虑设置一个计划脚本,该脚本运行一些命令并通过电子邮件向我发送输出。
我遇到的唯一问题是实际发送电子邮件。我没有 linux 下的电子邮件配置经验,所有指向 sendmail 的指南似乎都代表我自己和我当前的配置假设了很多事情。服务器设置为与 samba 共享文件,而不是作为邮件、Web 或 dns 服务器。我不想运行邮件服务器或从服务器路由任何东西或在服务器上(或使用)接收任何邮件,除非其中任何一项有助于我实现目标。文件服务器位于我们的正常网络上,并且可以访问 Internet。
我拥有多个网站域(并且有一个托管包)。我已经能够通过填写 smtp.mydotcom.com 以供传出服务器使用并更改端口等以匹配来自我网站的 cpanel 配置页面的信息,从而设置诸如 Thunderbird 之类的应用程序以使用我网站上的帐户之一发送邮件. 有没有办法做类似的事情,这样我就可以从我的文件服务器向我的外部电子邮件发送电子邮件?
编辑:这是我在阅读下面丹尼斯威廉姆森的回答后采取的步骤。我只用了几分钟就启动并运行了!
安装 esmtp:
sudo apt-get install esmtp
我在我的网站上创建了一个新的电子邮件帐户(称为“警报”)并像这样编辑 /etc/esmtprc:
主机名=mail.mydomain.com:26
用户名=alerts +mydomain.com
(这些值由 cpanel 管理页面提供)
然后我用电子邮件的默认顶部创建了一个名为“eheader”的文件:
收件人:我 <me@gmail.com>
发件人:警报 <alerts@mydomain.com>
主题:主题邮件正文
因此,为了关闭邮件,可以使用以下命令:
cat eheader <file1> <file2> ... <fileN> | /usr/bin/esmtp -t
因此,很容易改变为每日/每周/等作业发送的文件。
我有确切的问题,就像在这篇文章中一样:Sendmail to local domain ignoring MX records。我也在使用像 GMail For Your Domain 这样的电子邮件提供商(它存储和管理您的邮件)。我直接从我的服务器发送邮件,但接收邮件是通过 Yandex(电子邮件提供商)完成的。由于服务器托管一个论坛,我更喜欢直接从它发送邮件,因为使用其他邮件提供商会减慢速度。此外,当我向订阅者发送 300.000 封电子邮件时,其他电子邮件提供商肯定会阻止我认为我在发送垃圾邮件。
我的 DNS 区域现在是:
;
; GSMFORUM.RU
;
$TTL 1H
gsmforum.ru. SOA ns1.hc.ru. support.hc.ru. (
2009122268 ; Serial
1H ; Refresh
30M ; Retry
1W ; Expire
1H ) ; Minimum
gsmforum.ru. NS ns1.hc.ru.
gsmforum.ru. NS ns2.hc.ru.
@ A 79.174.68.223
*.gsmforum.ru. CNAME @
ns1 A 79.174.68.223
ns2 A 79.174.68.224
@ MX 10 mx.yandex.ru.
mail CNAME domain.mail.yandex.net.
yamail-xxxxxxxxx CNAME mail.yandex.ru.
Run Code Online (Sandbox Code Playgroud)
服务器主机名为 server.gsmforum.ru。可能是这个原因?有人可以解释一下原因吗(使 sendmail 将域视为本地的规则)?我能轻易改变吗
*.gsmforum.ru. …Run Code Online (Sandbox Code Playgroud) 我正在运行 Ubuntu 9.10 LAMP 并尝试使用 PHP 进行简单的电子邮件测试,但没有收到任何电子邮件。
mail("myemail@gmail.com", "eric-linux test", "test") or die("can't send mail");
Run Code Online (Sandbox Code Playgroud)
运行该脚本时,我没有收到来自 PHP 的错误。
在我的 php.ini 文件中是:
sendmail_path = /usr/lib/sendmail -t -i
Run Code Online (Sandbox Code Playgroud)
$ sudo ps aux | grep sendmail
eric 2486 0.0 0.4 8368 2344 pts/0 T 14:52 0:00 sendmail -s “Hello world” myemail@gmail.com
eric 8747 0.0 0.3 5692 1616 pts/2 T 16:18 0:00 sendmail
eric 8749 0.0 0.3 5692 1636 pts/2 T 16:18 0:00 sendmail start
eric 9190 0.0 0.3 5692 1636 pts/2 T 19:12 …Run Code Online (Sandbox Code Playgroud) 我正在我的 ubuntu 9.10 机器上开发 web (php)。
我使用它 sendmail 发送邮件,在我的本地机器上开发时,我发送本地邮件(给我的用户“doron”)。
直到几天前,我还能够从 php 的 mail() 函数和使用 mail 命令的命令行发送邮件。
我正在将 sendmail 与 mailutils 一起使用。
从最近几天开始,它似乎停止了工作。
当我尝试从命令行发送邮件时,我在系统日志(以及 mail.info 和 mail.log)中得到以下信息:
Mar 3 13:27:58 doron-desktop sendmail[4693]: o23BRwlA004693: from=doron, size=84, class=0, nrcpts=1, msgid=<201003031127.o23BRwlA004693@doron-desktop.>, relay=doron@localhost
Mar 3 13:27:58 doron-desktop sm-mta[4694]: o23BRwtQ004694: ruleset=check_rcpt, arg1=<doron@doron-desktop>, relay=localhost [127.0.0.1], reject=553 5.1.8 <doron@doron-desktop>... Domain of sender address doron@doron-desktop does not exist
Mar 3 13:27:58 doron-desktop sendmail[4693]: o23BRwlA004693: to=<doron@doron-desktop>, ctladdr=doron (1000/1000), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30084, relay=[127.0.0.1] [127.0.0.1], dsn=5.1.8, stat=User unknown
Mar 3 13:27:58 …Run Code Online (Sandbox Code Playgroud) 今天我设置 ssmtp 从 sendmail 给我发电子邮件。然而,我没想到的是,像 cron 这样的应用程序会给我发电子邮件。
在备份数据库之前,我的一个 cron 脚本尝试创建路径/年/月/,并且由于年和月已经存在,我收到了电子邮件
From: Root
Subject: Cron <root@myserver> /path/scripts/mysqlbackup.sh
mkdir: cannot create directory `2010': File exists
mkdir: cannot create directory `09': File exists
Run Code Online (Sandbox Code Playgroud)
我如何让它停止?它只持续了一个小时,所以如果这是唯一的错误,我只会修复脚本。
我有一个网络服务器,可以将电子邮件作为批处理作业发送到 sendmail 中继服务器。电子邮件需要尽快被中继发送邮件服务器接受,但是,它们不需要非常快地出去(被中继)。
我在尝试连接到中继服务器的网络服务器上时不时地看到几个超时。目前的负载大约是每秒 30 封电子邮件,持续几分钟。
在sendmail 调优指南中有很多sendmail 调优选项。
我现在关注的是交付模式:
交付方式
sendmail 可以运行多种传递模式,由 DeliveryMode (d) 配置选项设置。这些模式指定邮件的传送速度。合法模式有:
i 交互(同步)交付 b 在后台(异步)交付 q 仅队列(不交付) d 延迟交付尝试(不交付) 存在权衡。模式 i 为发件人提供最快的反馈,但可能会减慢某些邮件发送速度,而且几乎没有必要。模式 b 传递迅速,但如果您的邮件程序需要很长时间传递消息,则可能会导致大量进程。模式 q 最大限度地减少了机器上的负载,但意味着交付可能会延迟最多队列间隔。模式 d 与模式 q 相同,除了它还阻止在初始队列阶段工作的映射中查找,包括 -D 标志;它适用于“按需拨号”站点,在这些站点中,DNS 查找可能会花费大量金钱。一些简单的错误信息(例如,SMTP 协议期间未知的主机)将使用此模式延迟。模式 b 是通常的默认值。如果您在模式 q(仅队列)、d(延迟)或 b(在后台发送)下运行,sendmail 在最初收到邮件时将不会扩展别名并跟随 .forward 文件。这加快了对 RCPT 命令的响应。SMTP 服务器不应使用模式 i。
我目前有 CentOS 默认模式:
发送邮件.cf:
DeliveryMode=background
Run Code Online (Sandbox Code Playgroud)
提交.cf:
DeliveryMode=i
Run Code Online (Sandbox Code Playgroud)
sendmail.cf/mc传出的电子邮件中继(到intertubes),并sumbit.cf/mc传入EAMIL(从我的网络服务器)。如何配置 sendmail 以保留我发送的任何邮件的副本。一个选项是自动将副本发送回我的盒子。
我最近设置了一个新的备份服务器并配置了 sendmail smart_relay_host
除了来自命令行的每封电子邮件都不会去任何地方。来自mail.log:
Oct 3 14:32:52 *****back01 sm-mta[16570]: p93DWqtC016568: to=<***.***@***.com>, ctladdr=<root@*****back01.****.****.local> (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=120762, relay=10.2.30.60, dsn=5.1.2, stat=Host unknown (Name server: 10.2.30.60: host not found)
Oct 3 14:32:52 *****back01 sm-mta[16570]: p93DWqtC016568: p93DWqtC016570: DSN: Host unknown (Name server: 10.2.30.60: host not found)
Run Code Online (Sandbox Code Playgroud)
DNS 在此框上正常工作。我可以进行正向和反向查找。
我还可以远程登录到邮件中继并以这种方式发送消息。
我难住了。有什么建议?
我有名为 mywebsite.com 和邮件服务器 mymail.com 的 www 服务器。mywebsite.com 的邮件由 mymail.com 处理(mywebsite.com 的 mx 记录是 mymail.com)。问题是我想从我的 www 服务器 mywebsite.com 发送邮件到域 mywebsite.com 中的地址。
因此,我在 mywebsite.com 上配置了 sendmail 以通过 mymail.com 中继所有邮件。我在 mywebsite.com 上更改了 sendmail 配置:
dnl # define('SMART_HOST', 'mymail.com')dnl
问题是当我发送到例如 rafal@mywebsite.com 时,sendmail 会抱怨该用户未知(但该邮箱存在于 mymail.com 上)。所有 maiblox 都在 mymail.com 上,而不是在 mywebsite.com 上。
这是从 telnet 登录到 mywebsite.com 上的 localhost
root@mywebsite.com# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
220 familie.pl ESMTP Sendmail 8.13.8/8.13.8; Sun, 6 Nov 2011 18:21:04 +0100
helo domain.pl …Run Code Online (Sandbox Code Playgroud) sendmail ×10
linux ×5
ubuntu ×3
email ×2
cname-record ×1
cron ×1
dkim ×1
file-server ×1
gmail ×1
hosts ×1
localhost ×1
php ×1
postfix ×1
ubuntu-20.04 ×1
ubuntu-9.10 ×1
unix ×1