むかしの記事
obsA7-007 exim4でsmtp.google.comにとほぼ同じではあるが、
再度はじめからの設定をRaspberryPiで行う。
(1) まだインストールされていないことの確認
% dpkg -l exim4|grep exim4
un exim4 (no description available)
(2) exim4のインストール
# apt-get update
# apt-get install exim4
以下がインストールされた
Status Name Version Architecture Description
ii bsd-mailx 8.1.2-0.20141216cvs armhf simple mail user agent
2a104,107
ii exim4 4.84.2-2+deb8u4 all metapackage to ease Exim MTA (v4) installation
ii exim4-base 4.84.2-2+deb8u4 armhf support files for all Exim MTA (v4) packages
ii exim4-config 4.84.2-2+deb8u4 all configuration for the Exim MTA (v4)
ii exim4-daemon-light 4.84.2-2+deb8u4 armhf lightweight Exim MTA (v4) daemon
systemd 経由のexim4状態を確認
# systemctl status exim4
* exim4.service - LSB: exim Mail Transport Agent
Loaded: loaded (/etc/init.d/exim4)
Active: active (running) since Thu 2017-06-22 09:55:30 JST; 1h 3min ago
CGroup: /system.slice/exim4.service
`-26851 /usr/sbin/exim4 -bd -q30m
# /var/log/syslog もあわせて表示される
Jun 22 09:55:30 rapi3 exim4[26599]: Starting MTA: exim4.
Jun 22 09:55:30 rapi3 systemd[1]: Started LSB: exim Mail Transport Agent.
# tail /var/log/exim4/mainlog の表示
2017-06-22 09:55:30 exim 4.84_2 daemon started: pid=26851, -q30m, listening for SMTP on [127.0.0.1]:25 [::1]:25
2017-06-22 09:55:30 Start queue run: pid=26852
2017-06-22 09:55:30 End queue run: pid=26852
(3) exim4のGoogleサーバ設定
# cd /etc/exim4
初期状態の.orgとの差分。dc_other_hostnames=は変更せずとも、とりあえずそのままでも。
# diff update-exim4.conf.conf.org update-exim4.conf.conf
19,20c19,20
< dc_eximconfig_configtype='local'
< dc_other_hostnames='xxxx.yyy.zz'
---
> dc_eximconfig_configtype='smarthost'
> dc_other_hostnames='DC_OTHER_HOSTNAME'
26c26
< dc_smarthost=''
---
> dc_smarthost='smtp.gmail.com::587'
#ログインパスワード設定
# diff -u passwd.client.org passwd.client
--- passwd.client.org 2017-06-14 18:59:33.000000000 +0900
+++ passwd.client 2017-06-28 17:48:38.317534388 +0900
@@ -5,3 +5,4 @@
#
# Example:
### target.mail.server.example:login:password
+*.google.com:GMYNAME@gmail.com:GPASS
#設定の反映
# /usr/sbin/update-exim4.conf
#exim4の再起動
# /etc/init.d/exim4 restart
[ ok ] Restarting exim4 (via systemctl): exim4.service.
# パーミッションの確認
# ls -l /etc/exim4/passwd.client
-rw-r----- 1 root Debian-exim 658 Jun 22 16:24 /etc/exim4/passwd.client
# 読み書きはrootユーザと、読みはDebian-eximグループになっていることをチェック。
# もし違っていれば以下でパーミッションを設定する。
# chown root:Debian-exim /etc/exim4/passwd.client
# chmod 640 /etc/exim4/passwd.client
(4) 安全性の低いアプリ
以下の [安全性の低いアプリ] の設定をおこなう。
安全性の低いアプリからのアカウントへのアクセスを変更する
https://support.google.com/accounts/answer/6010255?hl=ja
・方法 2: 安全性の低いアプリからアカウントにアクセスできるように設定を変更します。この方法はアカウントのセキュリティを脆弱にするためおすすめしませんが、やむを得ない場合には次の手順で設定を変更できます。
1.[アカウント情報] の [安全性の低いアプリ] に移動します。
2.[安全性の低いアプリのアクセス] の横にある [有効にする] を選択します(G Suite ユーザー向け注意: この設定は、管理者が安全性の低いアプリからのアカウントへのアクセスをロックしている場合、表示されません)。
(5) 動作テストでメール送信をする。
% export DT="TEST_exim4 `date`"
% (echo "Subject: $DT"; echo "To: TO_TEST@TO_DOM_NAME"; echo "From: GMYNAME@gmail.com"; echo ""; echo "$DT" ; echo "from `hostname`") | /usr/sbin/exim4 -v -f GMYNAME@gmail.com TO_TEST@TO_DOM_NAME
LOG: MAIN
<= GMYNAME@gmail.com U=MYUSER P=local S=342
delivering 1dQAvV-0000wx-TU1008]
R: smarthost for TO_TEST@TO_DOM_NAME
T: remote_smtp_smarthost for TO_TEST@TO_DOM_NAME
Transport port=25 replaced by host-specific port=587
Connecting to gmail-smtp-msa.l.google.com [2404:6800:4008:c07::6c]:587 ... connected
SMTP<< 220 smtp.gmail.com ESMTP f87sm4356539pfe.35 - gsmtp
SMTP>> EHLO DC_OTHER_HOSTNAME
SMTP<< 250-smtp.gmail.com at your service, [2400:1111:2222:3333:4444:5555:6666:aaaa]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
SMTP>> STARTTLS
SMTP<< 220 2.0.0 Ready to start TLS
SMTP>> EHLO DC_OTHER_HOSTNAME
SMTP<< 250-smtp.gmail.com at your service, [2400:1111:2222:3333:4444:5555:6666:aaaa]
250-SIZE 35882577
250-8BITMIME
250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-CHUNKING
250 SMTPUTF8
SMTP>> AUTH PLAIN ****************************************
SMTP<< 235 2.7.0 Accepted
SMTP>> MAIL FROM: SIZE=1376 AUTH=MYUSER@DC_OTHER_HOSTNAME
SMTP>> RCPT TO:
SMTP>> DATA
SMTP<< 250 2.1.0 OK f87sm4356539pfe.35 - gsmtp
SMTP<< 250 2.1.5 OK f87sm4356539pfe.35 - gsmtp
SMTP<< 354 Go ahead f87sm4356539pfe.35 - gsmtp
SMTP>> writing message and terminating "."
SMTP<< 250 2.0.0 OK 1498648474 f87sm4356539pfe.35 - gsmtp
SMTP>> QUIT
LOG: MAIN
=> TO_TEST@TO_DOM_NAME R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [2404:6800:4008:c07::6c] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com" A=plain C="250 2.0.0 OK 1498648474 f87sm4356539pfe.35 - gsmtp"
LOG: MAIN
Completed
上記のようなログが表示されればメール送信成功で、/var/log/exim4/mainlogには以下のようなログが記録される。
# tail -f /var/log/exim4/mainlog
2017-06-28 10:52:08 Start queue run: pid=3487
2017-06-28 10:52:08 End queue run: pid=3487
2017-06-28 11:14:29 1dQAvV-0000wx-TU <= GMYNAME@gmail.comm U=myusername P=local S=342
2017-06-28 11:14:34 1dQAvV-0000wx-TU => TO_TEST@TO_DOM_NAME R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [2404:6800:4008:c07::6c] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com" A=plain C="250 2.0.0 OK 1498648474 f87sm4356539pfe.35 - gsmtp"
もし、失敗しているようであれば、/var/spool/exim4/input に不成功なメッセージが残るので内容を見て削除する。
(6) 内部のメール転送のための設定
/etc/aliases
root: MYUSER
MYUSER: GMYNAME@gmail.com
/etc/email-addresses
MYUSER: GMYNAME@gmail.com
/usr/bin/newaliasesは、/etc/aliasesを変更したときに、変更を有効にする。