У меня есть небольшой сервер (Ubuntu 14.04) для нескольких сайтов. Один из этих веб-сайтов должен отправлять электронные письма пользователю о различных действиях (регистрация, восстановление пароля и т. Д.). У меня установлен sendmail, и я могу отправлять почту из сценариев PHP.
Я настроил запись DNS SFP. Имя хоста сервера - «резина». Мой файл / etc / hosts содержит
127.0.0.1 localhost localhost.localdomain rubber
public.ip.address rubber
В этой конфигурации отправка электронной почты занимает очень много времени (около 20 секунд). Кроме того, журнал sendmail (/var/log/mail.log) показывает такую строку:
Sep 24 17:28:52 server sendmail[19842]: s8OFSLUd019842: to=<user@gmail.com>, delay=00:00:15, xdelay=00:00:15, mailer=relay, pri=30370, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (s8OFSbcl019844 Message accepted for delivery)
Заголовки полученных писем выглядят так (я изменил настоящие адреса):
Delivered-To: user@gmail.com
Received: by 10.112.136.195 with SMTP id qc3csp517582lbb;
Wed, 24 Sep 2014 08:20:55 -0700 (PDT)
X-Received: by 10.180.99.195 with SMTP id es3mr12425233wib.67.1411572055732;
Wed, 24 Sep 2014 08:20:55 -0700 (PDT)
Return-Path: <no-reply@website.com>
Received: from localhost.localdomain ([2022:4ff0:51:500::16e])
by mx.google.com with ESMTPS id el1si7235041wid.69.2014.08.22.08.20.55
for <user@gmail.com>
(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
Wed, 24 Sep 2014 08:20:55 -0700 (PDT)
Received-SPF: pass (google.com: domain of no-reply@website.com designates 2022:4ff0:51:500::16e as permitted sender) client-ip=2022:4ff0:51:500::16e;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of no-reply@website.com designates 2022:4ff0:51:500::16e as permitted sender) smtp.mail=no-reply@website.com
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
by localhost.localdomain (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id s8OFKPU7019505
for <user@gmail.com>; Wed, 22 Sep 2014 17:20:40 +0200
Received: from website-test.com (www-data@localhost)
by localhost.localdomain (8.14.4/8.14.4/Submit) with SMTP id s8OFKAOG019503
for <user@gmail.com>; Wed, 22 Sep 2014 17:20:25 +0200
X-Authentication-Warning: localhost.localdomain: www-data owned process doing -bs
Message-ID: <b93f252bb2ce76f36dfa4b2c71f3a094@website-test.com>
Date: Wed, 22 Sep 2014 17:20:09 +0200
Subject: Test email
From: "Website.com" <no-reply@website.com>
To: user@gmail.com
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Мои вопросы:
Задержка для каждого соединения вызвана тем, что sendmail хочет найти свое собственное полное доменное имя (FQDN), что терпит неудачу во всех остальных случаях, когда пытается выполнить обратное разрешение своего внешнего IP-адреса. Вы не дали ему полное доменное имя, поэтому он пытается обойтись localhost.localdomain
, который он почерпнул из записи localhost в hosts
файл (вы можете увидеть доказательства в некоторых из ваших Received: from
линий). Если вы дадите sendmail полное доменное имя, поместив полное доменное имя в качестве первой записи в строке внешнего IP-адреса вашего hosts
файл, он должен ускорить все операции.
Что касается удаления некоторых из них Received: from
строк, они добавляются как требование RFC каждый раз, когда сообщение переходит из одной сферы управления в другую. У вас есть серьезная деловая причина, по которой вы хотите от них избавиться? Потому что, если вы этого не сделаете - а обычно даже если и делаете - связываться с ними - действительно плохая идея.