354びぼーろく; 続 exim4 で gmail アカウントにメールを転送する

以前、exim4 で gmail アカウントにメールを転送する で設定方法を書いたけど、どうやら最近いろいろと変わったようなので書き直し。

こことかここ とかを参考にしながら設定。
まず、exim4をインストールし設定する。
aptitude install exim4
dpkg-reconfigure exim4-config
  * メール設定の一般的なタイプ ->スマートホストでメール送信: SMTP または fetchmail で受信する
  * システムメール名 ->localhost
  * 入力側 SMTP 接続をリスンする IP アドレス ->127.0.0.1
  * メールを受け取るその他の宛先 ->未入力
  * メールをリレーするマシン ->未入力
  * 送出スマートホストのIPアドレスまたはホスト名 ->smtp.gmail.com::587
  * 送出するメールでローカルメール名を隠しますか ->いいえ
  * DNS クエリの数を最小限に留めますか (ダイヤルオンデマンド) ->いいえ
  * ローカルメールの配送方式 ->/var/mail内のmbox形式
  * 設定を小さなファイルに分割しますか ->いいえ



次に/etc/exim4/passwd.client に以下を追加。

gmail-smtp.l.google.com:ユーザ名:パスワード
*.google.com:ユーザ名:パスワード
smtp.gmail.com:ユーザ名:パスワード

ユーザー名とパスワードはそれぞれ自分のgmailアカウントのものを使用する。

ユーザー名はユーザ名@gmail.comのユーザー名を入れる。
パスワードは二段階認証を実施している場合はアプリパスワードをここから発行し、そのパスワードを書く。
(あるいは安全性の低いアプリのアクセスを許可するのでも良いのかも。)

あとは/etc/exim4/email-addresses に

ログイン名@localhost: ユーザー名@gmail.com

を追加し、/etc/aliases の最後に

ログイン名: ユーザー名@gmail.com

を加える。で、最後に update-exim4.conf を実行する。

一応確認として、
exim4 -qff
tail /var/log/exim4/mainlog
でログを見て問題なければおそらく大丈夫。

一応テストメールとして、
echo "This is a test" | mail -s "TESTMAIL" ユーザー名@gmail.com
とかやってgmailに届いていればおそらく大丈夫。

さて、imapで受信したメールもついでに転送したいのでそのあたりの設定をする。
まずはfetchmailをインストール。

aptitude install fetchmail

その後、fetchmailの設定ファイル .fetchmailrc をホームディレクトリに作成する。
内容は以下のように入力する。

set postmaster "ユーザー名@gmail.com"
set no bouncemail
set no spambounce
set syslog
poll "受信したいメールサーバー"
proto imap
username "受信したいメールのアカウント(ユーザー名)"
password "受信したいメールのアカウントのパスワード"
smtpname "ユーザー名@gmail.com"
smtphost "localhost"
no mimedecode
keep
ssl

パスワード等が入っているので、パーミッションを変更。

chmod 0700 ~/.fetchmailrc

これで、以下を実行するとメールを読みに行って転送してくれるようになるはず。
試しに、
fetchmail -c 
でうまく受信しているかどうかを確認する。
うまく送信しているようであればcronに登録しておく。
crontab -e 
で以下を追加。
(2020/2/11追記: fetchmailがハングアップしないように60秒で接続を打ち切るように設定。 )

# Forward Mail To Gmail
# at every 3 minites with:
   */3 * * * * fetchmail -t 60

これでうまくいくはず。これでしばらく苦労はしなさそう。




2017/12/14追記: 転送した際の送信名が変わらないようにset invisibleを入れると便利。

set postmaster "ユーザー名@gmail.com"
set no bouncemail
set no spambounce
set invisible
set syslog
poll "受信したいメールサーバー"
proto imap
username "受信したいメールのアカウント(ユーザー名)"
password "受信したいメールのアカウントのパスワード"
smtpname "ユーザー名@gmail.com"
smtphost "localhost"
no mimedecode
keep
ssl

コメント

このブログの人気の投稿

471びぼーろく; ffmpegの音・映像ずれ修正

329びぼーろく; latexでヤング図を書く

531びぼーろく; python上でのヤコビ楕円関数