アプリケーション開発ポータルサイト
ServerNote.NET
カテゴリー【CORESERVERDebianUbuntu
CORESERVERにメールを蓄積し外部から自動で取得する
POSTED BY
2024-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のインストール

  1. apt search getmail
  2.  
  3. getmail4/oldstable,now 4.53.0-1+deb9u1 all
  4. POP3IMAP4 SDPS をサポートするメール取得プログラム
  5.  
  6. sudo apt install getmail4

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

  1. cd
  2. mkdir .getmail Maildir
  3. cd Maildir
  4. mkdir cur new tmp
  5. cd ..
  6. chmod -R go-rwx .getmail Maildir

設定ファイルの作成

  1. cd .getmail
  2. vi getmailrc
  3.  
  4. [options]
  5. verbose = 0
  6. delete = true
  7.  
  8. [retriever]
  9. type = SimplePOP3SSLRetriever
  10. server = x9999.coreserver.jp
  11. username = testmail@x9999.coreserver.jp
  12. password =
  13.  
  14. [destination]
  15. type = Maildir
  16. path = ~/Maildir/

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

メールを取得する

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

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

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

  1. cd
  2. cd Maildir
  3.  
  4. ls -alF
  5. 合計 40
  6. drwx------ 5 aaaaa bbbbb 4096 4 9 2019 ./
  7. drwxr-xr-x 80 aaaaa bbbbb 12288 2 24 20:37 ../
  8. drwx------ 2 aaaaa bbbbb 4096 4 9 2019 cur/
  9. -rw------- 1 aaaaa bbbbb 51 4 9 2019 dovecot-uidlist
  10. -rw------- 1 aaaaa bbbbb 8 4 9 2019 dovecot-uidvalidity
  11. -r--r--r-- 1 aaaaa bbbbb 0 4 9 2019 dovecot-uidvalidity.5cabf8e5
  12. -rw------- 1 aaaaa bbbbb 304 4 9 2019 dovecot.index.log
  13. drwx------ 2 aaaaa bbbbb 4096 2 24 21:11 new/
  14. drwx------ 2 aaaaa bbbbb 4096 2 24 21:11 tmp/
  15.  
  16. ls -alF new/
  17. 合計 20
  18. drwx------ 2 aaaaa bbbbb 4096 2 24 21:11 ./
  19. drwx------ 5 aaaaa bbbbb 4096 4 9 2019 ../
  20. -rw------- 1 aaaaa bbbbb 2773 2 24 20:44 1645703088.M662482P29312Q0R6a72178ba7b09511.www
  21. -rw------- 1 aaaaa bbbbb 3129 2 24 21:10 1645704646.M767800P29403Q0R0d2dcfe148f31cdc.www
  22. -rw------- 1 aaaaa bbbbb 3348 2 24 21:11 1645704715.M335783P29407Q0R34e781be48e543f9.www

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

cronで自動取得する

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

  1. crontab -e
  2.  
  3. 15,45 * * * * /usr/bin/getmail

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

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

【キーワード検索】