2017-08-15 16 views
0

次のスクリプトをローカルで使用してメールを受け取ることができます。Docker Containerでcurl(smpt)経由でメールを送信

rtmp_url="smtp://smtp.xxx.com:25" 
rtmp_from="[email protected]" 
rtmp_to="[email protected]" 

file_upload="mail.txt" 

echo "From: $rtmp_from 
To: $rtmp_to 
Subject: example of mail 
Cc: 
MIME-Version: 1.0 
Content-Type: multipart/mixed; boundary=\"MULTIPART-MIXED-BOUNDARY\" 

--MULTIPART-MIXED-BOUNDARY 
Content-Type: multipart/alternative; boundary=\"MULTIPART-ALTERNATIVE-BOUNDARY\" 

--MULTIPART-ALTERNATIVE-BOUNDARY 
Content-Type: text/plain; charset=utf-8 
Content-Disposition: inline 

This is an email example. This is text/plain content inside the mail. 
--MULTIPART-ALTERNATIVE-BOUNDARY-- 
--MULTIPART-MIXED-BOUNDARY 
Content-Type: application/octet-stream; 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename=\"logs.txt\"" > ./mail.txt 

cat ./mail.txt | base64 >> ./mail.txt 
# end of uploaded file 
echo "--MULTIPART-MIXED-BOUNDARY--" >> ./mail.txt 

echo "sending ...." 

curl --url 'smtp://smtp.xxx.com:25' --ssl-reqd --mail-from $rtmp_from --mail-rcpt $rtmp_to -T './mail.txt' --insecure 

しかし、私はこのスクリプトをドッカーのコンテナで実行しようとしています。コンテナ内でこのエラーが発生する:smtp.xxx.com:25への接続に失敗しました。ホストするルートがありません。 私のパソコンでは、mailhubを/etc/ssmtp/ssmtp.confのsmtp.xxx.comに変更したので、ローカルで動作します。私はドッカーには新しく、どのようにドッカーのコンテナでこれを達成できるのか分かりません。助けてください。

+0

オフィスネットワークでこれを行っていますか?独自の/カスタムDNSサーバーをお持ちですか? –

+0

はい、オフィスネットワーク内です。しかし、私は端末でこれを実行すると私は電子メールを受け取ることができます。私はドッカーのコンテナでどのように設定するのか分かりません。 – Aki

答えて

0

ホスト上でcat /etc/resolv.confを実行します。ホスト上にいくつかのDNS設定が表示されます。これは、ファイル/etc/docker/daemon.json

{ 
"dns": ["IP1", "IP2"] 
} 

再起動しドッカサービスを作成して、もう一度試してみて、これはあなたのために働くかどうかを確認ドッカデーモン

のために設定する必要があります。

おそらくオフィスネットワーク上にあり、使用する必要がある独自のDNSサーバーがあります。したがって、Dockerデーモンに、どのDNSサーバーを使用するべきかを伝える必要があります。それが問題の原因です。 daemon.jsonファイルを使用してデーモンの設定を変更できます。

関連する問題