アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【CORESERVERDebianUbuntu
CORESERVERにメールを蓄積し外部から自動で取得する
POSTED BY
2023-02-24

安価なレンタルサーバーCORESERVERの活用例。
メールアドレスを新規作成しCORESERVERに蓄積させて、任意の外部サーバーからcronなどで自動でPOPする。

1、CORESERVERで受信メールアドレスを作成

自分のCORESERVERを仮にx9999.coreserver.jpとして話を進める。

コントロールパネル→メール

https://cp.coreserver.jp/mail/

メールの新規作成

メールアドレス: testmail@x9999.coreserver.jp
パスワード: ランダムなパスワードを作成
受信方法: POP/WEB
メールボックス容量: 100MB (適切な容量を自分で設定)
自動返信: しない
フィルター: なし
オプション: なし

これで、適当なGmailなどからtestmail@x9999.coreserver.jpへメールを送信できるようになり、溜まっていくはずだ。

2、自宅サーバーなどから自動でPOP(受信)してCORESERVERから削除する

放置しておくとすぐにメールボックス容量に到達するので、定期的に受信してCORESERVERから削除しなくてはならない。
ここではDebianサーバーからgetmailを使用してPOPを行ってみる。

getmailのインストール

apt search getmail

getmail4/oldstable,now 4.53.0-1+deb9u1 all
  POP3、IMAP4 や SDPS をサポートするメール取得プログラム

sudo apt install getmail4

設定ディレクトリとメールボックスの作成

cd
mkdir .getmail Maildir
cd Maildir
mkdir cur new tmp
cd ..
chmod -R go-rwx .getmail Maildir

設定ファイルの作成

cd .getmail
vi getmailrc

[options]
verbose = 0
delete = true

[retriever]
type = SimplePOP3SSLRetriever
server = x9999.coreserver.jp
username = testmail@x9999.coreserver.jp
password = 

[destination]
type = Maildir
path = ~/Maildir/

上記はPOPしたメールはCORESERVERから削除、SSL over POP3を使用、メールは~/Maildirに蓄積、といった設定。

メールを取得する

getmail -v で詳細情報つきPOP、getmailのみでサイレントPOP。手動テストなら前者、cronで行うなら後者が良いだろう。

getmail -v
getmail version 4.54.0
Copyright (C) 1998-2012 Charles Cazabon.  Licensed under the GNU GPL version 2.
SimplePOP3SSLRetriever:testmail@x9999.coreserver.jp@x9999.coreserver.jp:995:
  msg 1/1 (2989 bytes) delivered, deleted
  1 messages (2989 bytes) retrieved, 0 skipped

新規メールが無事取得できたようだ。Maildirを確認してみる。

cd
cd Maildir

ls -alF
合計 40
drwx------  5 aaaaa bbbbb  4096  4月  9  2019 ./
drwxr-xr-x 80 aaaaa bbbbb 12288  2月 24 20:37 ../
drwx------  2 aaaaa bbbbb  4096  4月  9  2019 cur/
-rw-------  1 aaaaa bbbbb    51  4月  9  2019 dovecot-uidlist
-rw-------  1 aaaaa bbbbb     8  4月  9  2019 dovecot-uidvalidity
-r--r--r--  1 aaaaa bbbbb     0  4月  9  2019 dovecot-uidvalidity.5cabf8e5
-rw-------  1 aaaaa bbbbb   304  4月  9  2019 dovecot.index.log
drwx------  2 aaaaa bbbbb  4096  2月 24 21:11 new/
drwx------  2 aaaaa bbbbb  4096  2月 24 21:11 tmp/

ls -alF new/
合計 20
drwx------ 2 aaaaa bbbbb 4096  2月 24 21:11 ./
drwx------ 5 aaaaa bbbbb 4096  4月  9  2019 ../
-rw------- 1 aaaaa bbbbb 2773  2月 24 20:44 1645703088.M662482P29312Q0R6a72178ba7b09511.www
-rw------- 1 aaaaa bbbbb 3129  2月 24 21:10 1645704646.M767800P29403Q0R0d2dcfe148f31cdc.www
-rw------- 1 aaaaa bbbbb 3348  2月 24 21:11 1645704715.M335783P29407Q0R34e781be48e543f9.www

メールの本体が、newの中に溜まっている。あとはdovecotなどでPOPするかnewのファイルを直接cat等すればよい。

cronで自動取得する

getmailコマンド単体を打てばよい。

crontab -e

15,45 * * * * /usr/bin/getmail

上記例は、毎時15分/45分に、getmailを呼んで取得する設定。

※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

【キーワード検索】