ユーザバックエンドがSQLのiredmailのSOGoでユーザがログインできない

2020/09/10追記

iRedMail内のパスワード文字列取り扱いについて「Password hashes」というドキュメントが公開された。

それによればmd5-cryptを使いたい場合は「{CRYPT}$1$5ulpxxxx$VS0xHxxKxMPBSIPQlXDXC/」という風に「{CRYPT}」という前置詞を追加すれば良いらしい。


qmail+vpopmailからパスワード暗号化文字列ごと移植したpostfix+dovecotベースの統合環境iredmail環境がある。

iredmailにはExchange互換サーバのSOGoもあるので、そちらでログインしようとしたらエラーになる。

roundcubeからだとログインができるし、dovecotを使うPOP3/IMAPアクセスでも問題無い。

/var/log/sogo/sogo.log へのエラーは下記の様になっていた。

Jul 04 13:15:04 sogod [9257]: SOGoRootPage Login from 'クライアントIPアドレス' for user 'ユーザ名@ドメイン名' might not have worked - password policy: 65535  grace: -1  expire: -1  bound: 0

iredmailのフォーラムに「Can’t configure password policy when using SOGo」といのがあり、sogo.confに「passwordPolicy = YES;」を追加すればいいじゃん?とあったのでやってみたが、変化はなし。

SOGo側のbug tracking system「 0003899: SQL authentication 」にてヒントを発見。

暗号化文字列の指定の問題のようだ。

今回、sogo.confは下記の様に「userPasswordAlgorithm = ssha512」となっており、パスワード暗号化文字列がssha512フォーマットである、ということになっている。

    SOGoUserSources = (
        {
            type = sql;
            id = users;
            viewURL = "mysql://sogo:~@127.0.0.1:3306/sogo/users";
            canAuthenticate = YES;

            // The algorithm used for password encryption when changing
            // passwords without Password Policies enabled.
            // Possible values are: plain, crypt, md5-crypt, ssha, ssha512.
            userPasswordAlgorithm = ssha512;
            prependPasswordScheme = YES;

            // Use `vmail.mailbox` as per-domain address book.
            isAddressBook = YES;
            displayName = "Domain Address Book";
            SOGoEnableDomainBasedUID = YES;
            DomainFieldName = "domain";
        },

しかし、今回、vpopmail時代の文字列「$1$5ulpxxxx$VS0xHxxKxMPBSIPQlXDXC/」という書式、つまりはmd5-cryptフォーマットを流用しているので認証できなかった、ということになる。

メインとなるiredmail側は新しくパスワードを設定した場合はssha512、移植したものはmd5-cryptという運用にしている。

ただ、postfix,dovecot,roundcubeの運用に関しては、ssha512でもmd5-cryptでも問題無くログインできている。

それに対してSOGo側は「SOGO Installation and Configuration Guide」を見ると userPasswordAlgorithm には1つの値しか指定はできないようだ。

セキュリティを考えると全体をmd5-cryptに下げる、という選択肢はとれないので、SOGoを使いたい場合は、パスワードを再設定する、ということになる。

パスワードを再設定すると以下のログとなる。

Jul 04 13:50:43 sogod [1094]: SOGoRootPage successful login from 'クライアントIPアドレス' for user 'ユーザ名@ドメイン名' - expire = -1  grace = -1

ラズパイ4がUS,EU圏以外でも発売できる理由って何なんだろう?

ラズベリーパイ4が発売になりました。

基板上にFCC ID(US)とCEロゴ(EU圏)が印字されているので、たぶんこの2箇所で使うのは合法なんだろうなぁ、って感じです。

で・・・いま手元にあるラズパイ3の箱を見てみると各国の電波系の認証IDとロゴがあります。

CE

CEマークで、EU圏で使う場合に必要です。

FCC

FCCマークで、アメリカで使う場合に必要です。

FCC IDが発行されます。文字列を指定できるようで、製品名称が入ったりします。

CMIT ID 中国のCCC認証を取得すると発行されるIDです。SRRCの場合もあるようです。

KCC

韓国のKCCマークです。

MSIP-CMN-P2R-RPI32がラズパイ3のIDのようです。

NCC

台湾のNCCマークです。

通称技適マークです。 工事設計認証のマーク。TELECとも呼ばれることがあります。

香港で使用するための認証です。

上記の認証を発行している組織「通訊事務管理局」のロゴです。

というわけで、私が所有しているラズパイ3を合法的に利用できるのは、日本、アメリカ、EU圏、韓国、中国、香港、台湾であるようです。

それ以外の国については認可がおりてないため取り締まられる可能性がある、ということになります。

いままでの機器における認可の取得状況を見る限り、ラズパイ4についても、同じようにアメリカとEU圏以外についてはちゃんと認証を取得しなければ不味いはずなのですが、現時点ではそれ以外の国についてちゃんと認証取得が完了しているかどうかは不明です。

いったいどのようになっているのでしょうかねぇ・・・


株機器会社イー・オータマの「各国申請代行」のページに各国の認証ロゴがあり、調べる手がかりになりました。

総務省の平成24年の記事「 各国の基準認証制度の概要 -MRA情報の調査に親しむ- 」というpdfファイルは韓国、カナダ、中国、オーストラリア、EU圏、シンガポール、アメリカにおける電波認証に係わる組織と規制についての説明が簡単にされており、大変役にたちました。

また平成22年発行の「各国基準認証制度の概要」ではインド、中国、韓国、カナダ、ペルー、ロシアで(データ通信も行う)無線機器を販売する際に必要となる認証について解説されています。

ブラウザを開かずにshowroomを視聴する

ブラウザを開かずにshowroom liveを視聴する方法はないかなぁ・・・と調べて見たら、livestreamを使い視聴するためのscriptを発見。fcicq/showroomlive.sh

ただ、これはそのままではshowroomの仕様変更に対応しておらず使えない。また、livestreamは現在メンテナンスされておらずstreamlinkを使え、と書いてある。

streamlinkはpythonインストールとか考えなくても使えるようなWindows用バイナリが用意されているため、簡単に実験ができそうだったので試してみた。

とりあえずstreamlinkをインストールして、showroom liveの配信やってるページに出てくる.m3u8ファイルを与えてみると・・・

C:\Program Files (x86)\Streamlink\bin>streamlink.exe https://edge-210-140-227-26.showroom-live.com/liveedge/52e66cae6b58a08641bd702e091c7f94fee147899da1a714c38312bab75ea7f0/chunklist_w791438536.m3u8
[cli][info] Found matching plugin hls for URL https://edge-210-140-227-26.showroom-live.com/liveedge/52e66cae6b58a08641bd702e091c7f94fee147899da1a714c38312bab75ea7f0/chunklist_w791438536.m3u8
Available streams: live (worst, best)

C:\Program Files (x86)\Streamlink\bin>

高画質(best)/低画質(worst)の選択を求められた。

C:\Program Files (x86)\Streamlink\bin>streamlink.exe https://edge-210-140-227-26.showroom-live.com/liveedge/52e66cae6b58a08641bd702e091c7f94fee147899da1a714c38312bab75ea7f0/chunklist_w791438536.m3u8 worst
[cli][info] Found matching plugin hls for URL https://edge-210-140-227-26.showroom-live.com/liveedge/52e66cae6b58a08641bd702e091c7f94fee147899da1a714c38312bab75ea7f0/chunklist_w791438536.m3u8
[cli][info] Available streams: live (worst, best)
[cli][info] Opening stream: live (hls)
error: The default player (VLC) does not seem to be installed. You must specify the path to a player executable with --player.
[cli][info] Closing currently open stream...

C:\Program Files (x86)\Streamlink\bin>

VLCを使って動画再生を開始しようとしたが、VLCがインストールされていないため失敗した。

そこでVLCをインストールしてから再度実行してみると、こんどはVLCアプリが起動して再生が始まった。

C:\Program Files (x86)\Streamlink\bin>streamlink.exe https://edge-210-140-227-26.showroom-live.com/liveedge/52e66cae6b58a08641bd702e091c7f94fee147899da1a714c38312bab75ea7f0/chunklist_w791438536.m3u8 worst
[cli][info] Found matching plugin hls for URL https://edge-210-140-227-26.showroom-live.com/liveedge/52e66cae6b58a08641bd702e091c7f94fee147899da1a714c38312bab75ea7f0/chunklist_w791438536.m3u8
[cli][info] Available streams: live (worst, best)
[cli][info] Opening stream: live (hls)
[cli][info] Starting player: "C:\Program Files\VideoLAN\VLC\vlc.exe"
[cli][info] Player closed
[cli][info] Stream ended
[cli][info] Closing currently open stream...

C:\Program Files (x86)\Streamlink\bin>

(上記のログはVLCの終了までを含む)

さらにいろいろ実験中、うっかりとstreamlinkに対してルームのURLそのものを渡してしまったところ、何事もないかの表示表示された。

C:\Program Files (x86)\Streamlink\bin>streamlink.exe https://www.showroom-live.com/sena-hiiragi
[cli][info] Found matching plugin showroom for URL https://www.showroom-live.com/sena-hiiragi
Available streams: 144p (worst), low, 360p, high (best)

C:\Program Files (x86)\Streamlink\bin>
C:\Program Files (x86)\Streamlink\bin>streamlink.exe https://www.showroom-live.com/sena-hiiragi best
[cli][info] Found matching plugin showroom for URL https://www.showroom-live.com/sena-hiiragi
[cli][info] Available streams: 144p (worst), low, 360p, high (best)
[cli][info] Opening stream: high (rtmp)
[cli][info] Starting player: "C:\Program Files\VideoLAN\VLC\vlc.exe"
[cli][info] Player closed
[cli][info] Stream ended
[cli][info] Closing currently open stream...

C:\Program Files (x86)\Streamlink\bin>

「Opening stream: high (rtmp)」となっているが、この形式はFlash Video形式となる。デフォルトでは「”rtmp,hls,hds,http,akamaihd,*”」という順序で優先順位を決めているので、MPEG4-TS形式で受信するには「–stream-types=hls」オプションをつけてhlsを指定する必要がある。

C:\Program Files (x86)\Streamlink\bin>streamlink.exe --stream-types=hls https://www.showroom-live.com/sena-hiiragi best
[cli][info] Found matching plugin showroom for URL https://www.showroom-live.com/sena-hiiragi
[cli][info] Available streams: 144p (worst), 360p (best)
[cli][info] Opening stream: 360p (hls)
[cli][info] Starting player: "C:\Program Files\VideoLAN\VLC\vlc.exe"
[cli][info] Player closed
[cli][info] Stream ended
[cli][info] Closing currently open stream...

C:\Program Files (x86)\Streamlink\bin>

よくみたら「streamlinkのpluginページ」にshowroomが対応していると掲載されていた。

他にabematv、 bilibili、 nhkworld、pixiv(sketch)が掲載されていて興味深い。

で・・・ここで調べたことを元に、showroom liveで目的とするルームの配信が始まったらVLCを起動して視聴開始するためのPowerShellスクリプトを実装してみた。

https://github.com/osakanataro/showroom-live

なぜPowerShellで組んだかといえば、WindowsとLinuxの両方で同じスクリプトを使いたかったからですね。

プラットフォームの違いを考慮しなければならない点がいくつかありましたが、まぁなんとかなりました。

Raspberry pi上のOSMCにstreamlinkをインストールする

streamlink」をOSMC環境に入れてみた

streamlinkからVLCを起動してHDMI経由の音声出力はできたのですが、HDMI映像出力がうまくいきませんでした。このため、VLCで受信したものをrtspサーバとして出力し、そのデータをkodi側で受け取るという実装にしました。

追加したもの

再生用にVLC

$ sudo apt install vlc vlc-plugin-sdl 

pythonでpipコマンドを使うために

$ sudo apt install python-pip python-setuptools

コンパイルをするために

$ sudo apt install build-essential python-dev

エラー解決のために

下記のエラー解決のために「sudo apt install libffi-dev」

    c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
     #include <ffi.h>

「sudo apt install libssl-dev」

    build/temp.linux-armv7l-2.7/_openssl.c:498:30: fatal error: openssl/opensslv.h: No such file or directory
     #include <openssl/opensslv.h>

で・・・これでようやくstreamlinkインストールに成功しました。

「sudo pip install streamlink」

再生に至るまで

以下のような感じで、OSMCにログインした状態でコマンドを実行して、ポート8554にてrtspのストリーミングサーバを実行します。

$ streamlink https://www.showroom-live.com/ringo-005 best --player="cvlc --sout '#rtp{sdp=rtsp://:8554/}'"

ちなみに、streamlinkのマニュアルを見ると「–player-args」というオプションで引数を渡すことができるとありましたが、「streamlink https://www.showroom-live.com/ringo-005 best –player=cvlc –player-args=”–sout ‘#rtp{sdp=rtsp://:8554/}'”」を実行すると、以下のエラーになってしまって起動できませんでした。

osmc@osmc:~$ streamlink https://www.showroom-live.com/yui-010 worst --player=cvlc --player-args="--sout '#rtp{sdp=rtsp://:8554/}'"
/usr/local/lib/python2.7/dist-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.2) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
[cli][info] Found matching plugin showroom for URL https://www.showroom-live.com/yui-010
[cli][info] Available streams: 144p (worst), low, high, 1080p (best)
[cli][info] Opening stream: 144p (hls)
[cli][info] Starting player: cvlc
[cli][info] Closing currently open stream...
Traceback (most recent call last):
  File "/usr/local/bin/streamlink", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python2.7/dist-packages/streamlink_cli/main.py", line 1033, in main
    handle_url()
  File "/usr/local/lib/python2.7/dist-packages/streamlink_cli/main.py", line 594, in handle_url
    handle_stream(plugin, streams, stream_name)
  File "/usr/local/lib/python2.7/dist-packages/streamlink_cli/main.py", line 447, in handle_stream
    success = output_stream(plugin, stream)
  File "/usr/local/lib/python2.7/dist-packages/streamlink_cli/main.py", line 320, in output_stream
    output.open()
  File "/usr/local/lib/python2.7/dist-packages/streamlink_cli/output.py", line 24, in open
    self._open()
  File "/usr/local/lib/python2.7/dist-packages/streamlink_cli/output.py", line 221, in _open
    self._open_subprocess()
  File "/usr/local/lib/python2.7/dist-packages/streamlink_cli/output.py", line 242, in _open_subprocess
    args = self._create_arguments()
  File "/usr/local/lib/python2.7/dist-packages/streamlink_cli/output.py", line 203, in _create_arguments
    args = self.args.format(filename=filename)
KeyError: 'sdp=rtsp'
osmc@osmc:~$ streamlink https://www.showroom-live.com/yui-010 best --player="cvlc --sout '#rtp{sdp=rtsp://:8554/}'"
/usr/local/lib/python2.7/dist-packages/requests/__init__.py:91: RequestsDependencyWarning: urllib3 (1.25.2) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
[cli][info] Found matching plugin showroom for URL https://www.showroom-live.com/yui-010
[cli][info] Available streams: 144p (worst), low, high, 1080p (best)
[cli][info] Opening stream: 1080p (hls)
^CInterrupted! Exiting...
[cli][info] Closing currently open stream...
osmc@osmc:~$

続いて、拡張子が.m3uで、以下の内容をテキストエディタで作成します。

#EXTM3U
#EXTINF:-1 
rtsp://127.0.0.1:8554

このm3uファイルをkodiで開くとshowroom動画が再生されました。

iRedMailの初期設定から変えたところ 2018/08/21版

postfix+dovecotを使って複数ドメインのメールサーバを簡単にできるようにしたパッケージ「iRedMail」を利用中。

1月から流量が少ないドメインで使用を開始し、夏頃から本格利用を開始した。
中小企業相手のメールが多くなるとiRedMailの標準設定では、先方からのメール受け取りが拒否されることが増えてきた。
その他にも、メールサーバ以外の場所からメールを送信する場合に受け取り拒否が発生するということもあった。

そこで、日本で使う場合に受信出来ないということが少なくなるような設定ポイントを解説してみる


(1) メールサーバ以外の場所からメールを送信する場合、iredapdの設定を変える
メールサーバ以外にあるWebサーバや、Yahooや楽天などのシステムから自社ドメインのメールを送りたい場合、iRedMail標準設定では、メール受信がSMTP AUTHされてないサーバから送られてきてると拒否されてしまう。(Recipient address rejected: SMTP AUTH is required for users under this sender domain)
これは、iredapdのポリシーによる設定であるため、ルールを変更することで対処ができる。

なお、設定変更する前に、メール送信するサーバがSPFレコードに登録されていることを確認する。

設定は、/opt/iredapd/settings.py に「CHECK_SPF_IF_LOGIN_MISMATCH = True」を追加して、iredapd.serviceを再起動することで完了する。

参考:「postfixを使用したiredmailで他サーバで送信された自ドメインメールが受信拒否される


(2) barracudacentralを使わない
iRedMailの標準設定では「zen.spamhaus.org」と「b.barracudacentral.org」の2つがSPAM拒否データベースとして使われている。
ただ、いろいろ運用してみると、spamhaus.orgの方は一般住宅回線にあるSPAM botからのメールを効率良く排除してくれるが、
barracudacentral.orgの方は、どうも誤爆が多いようで、中小企業からのメールが良く拒否リストに入ってしまっている。
(たぶん共有サーバ運用で、他のユーザが変なことしたせい)

なので、うちではbarracudacentralを使用しないようにしました。

設定は「/etc/postfix/main.cf」で「postscreen_dnsbl_sites = 」で設定されているものから「b.barracudacentral.org=127.0.0.[2..11]*2」の記述を消すだけです。


(3) mail.goo.ne.jpからのメールが拒否されているのでコメント
/etc/postfix/helo_access.pcre にある設定によりmail.goo.ne.jpからのメールが拒否されているので、設定を変更する

変更前

/^(mail\.goo\.ne\.jp)$/ REJECT ACCESS DENIED. Your email was rejected because it appears to come from a known spamming mail server (${1})

変更後

###/^(mail\.goo\.ne\.jp)$/ REJECT ACCESS DENIED. Your email was rejected because it appears to come from a known spamming mail server (${1})

(4) ホスト名にIPアドレスが含まれていると拒否する設定があるので、設定を一部変更する。
家庭用回線などnetwork-192-168.0.100.ぷろばいだ.ne.jpという感じでIPアドレスがもろに埋め込まれたホスト名が使われている。
それに対して、メールサーバは多くの場合、ちゃんと命名されていることが多い。

が・・・AmazonのAWSでサービスを立てているようなところからのメールが、IPアドレス付きのメールサーバから送られてくる事がある。
また、それ以外でも、ちらほらと・・・

/etc/postfix/helo_access.pcre の設定によるもので、下記のbypassの後に記述を追加する

変更前

# bypass "[IP_ADDRESS]"
/^\[(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\]$/ DUNNO
# reject HELO which contains IP address
/(\d{1,3}[\.-]\d{1,3}[\.-]\d{1,3}[\.-]\d{1,3})/ REJECT ACCESS DENIED. Your email was rejected because the sending mail server appears to be on a dynamic IP address that should not be doing direct mail delivery (${1})

変更後

# bypass "[IP_ADDRESS]"
/^\[(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\]$/ DUNNO
### add by 2018/08/09 for yawata-lions.com
/^sv(\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}).*.seedshosting.jp$/ DUNNO
### add by 2018/08/09 for aws servers
/^ec2-(\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3}).*.amazonaws.com$/ DUNNO
### add by 2018/08/09 for shop-pro.jp
# mail-10-200-1-137.mitaka.shop-pro.jp
/^mail-(\d{1,3}-\d{1,3}-\d{1,3}-\d{1,3})/ DUNNO
# reject HELO which contains IP address
/(\d{1,3}[\.-]\d{1,3}[\.-]\d{1,3}[\.-]\d{1,3})/ REJECT ACCESS DENIED. Your email was rejected because the sending mail server appears to be on a dynamic IP address that should not be doing direct mail delivery (${1})

(5) whitelistdomainを登録しておく
iRedMailだと、greylistを採用しており、メールが送られてくると最初の5分間はメールを受け取らず、再送されてくると受け取るようになっている。
しかし、ある程度信頼がおけるドメインのSPFレコードに登録されているサーバから送られてくるメールは、最初から受け取ってしまうようにした方がログチェックも簡単になる。

現在登録されている一覧は「/opt/iredapd/tools/spf_to_greylist_whitelists.py」を実行して確認できる。
登録は「/opt/iredapd/tools/greylisting_admin.py –whitelist-domain –from ‘@docomo.ne.jp’」というようにドメイン名を指定して行う。
ただ、コレはデータベースに登録するだけで、システムへの反映は「/opt/iredapd/tools/spf_to_greylist_whitelists.py」を実行する必要がある。
標準設定では毎時2分に実行されている。

うちのサーバで追加登録したものを下記に上げておく。便利なようにコマンドとしてそのまま実行できる状態にしておきます。

# 携帯電話のメールアドレス
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@docomo.ne.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@ezweb.ne.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@i.vodafone.ne.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@k.vodafone.ne.jp'

# ネットサービス系
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@mixi.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@magb.netmile.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@mrelay.epark.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@mta14.dmm.com'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@fmail01.gpoint.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@post.freeml.com'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@post.point.gmo.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@receive.mag2tegami.com'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@return.mag2-tayori.com'

# ショップ系
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@amazon.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@jmg.joshin.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@ma.store.uniqlo.com'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@return.nttxstore.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@webmail.askul.co.jp'

# 楽天関連
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@rakuten.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@emagazine.rakuten.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@mail.travel.rakuten.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@shop.rakuten.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@tc.api.rakuten-card.co.jp'

# Yahoo
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@err.yahoo.co.jp'

# 企業系
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@amc.ana.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@m1.kirin.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@olympus-imaging.com'

# 銀行・金融系
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@ct.shinseibank.com'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@mdbc.jibunbank.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@m.email.americanexpress.com'

# その他
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@a8.net'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@bounces1.postcarrier.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@d00.mailsystem.anser.ne.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@infomart.co.jp'
/opt/iredapd/tools/greylisting_admin.py --whitelist-domain --from '@willap.jp'