Alibaba Cloud Centos6.X でメールを送信する際に発生するさまざまな問題

Alibaba Cloud Centos6.X でメールを送信する際に発生するさまざまな問題

序文:

Webサービスを提供するために、Alibabaクラウドホストを新しくインストールしました。すべての環境がセットアップされ、サービスを提供できるようになりました。しかし、最終監視フェーズでメール送信時にさまざまな落とし穴に遭遇するとは思っていませんでした。ここでこれを共有したいと思います。あなたもこの落とし穴に遭遇したことがありますか?

NetEase 163 無料メールボックス関連サーバー情報:

1. インストールと設定:

1.1. インストール

[root@linux-node2 ~]# yum install mailx -y

読み込まれたプラグイン: fastestmirror、security

インストールプロセスの設定

最速ミラーの決定

 * ベース: mirrors.aliyun.com

 * 追加情報: mirrors.aliyun.com

 * 更新情報: mirrors.aliyun.com

ベース | 3.7 kB 00:00  

エペル | 3.2 kB 00:00  

epel/プライマリ | 3.2 MB 00:00  

エペル 12521/12521

特典 | 3.4 kB 00:00  

アイスハウス | 2.9 kB 00:00

アップデート | 3.4 kB 00:00  

アップデート/プライマリ_ | 1.2 MB 00:00  

パッケージ mailx-12.4-8.el6_6.x86_64 はすでにインストールされており、最新バージョンです

何もすることがない

1.2. 設定(163メールボックスを例に)

まず、メールボックスがあなたのニーズを満たしている必要があります。メールボックスに移動して設定してください

次に/etc/mail.rc設定ファイルに追加します

[email protected] smtp=smtp.163.com smtp-auth-user=admin smtp-auth-password=xxxxxx smtp-auth=login と設定します

[root@linux-node2 ~]# echo "12345" | mail -v -s "test" [email protected]

今のところ問題はないのですが、メールを受信できません。では、トラブルシューティングを始めましょう。ネットワークと構成のチェックをすべて完了した後も、メールを受信できませんでした。最後にポートをチェックして問題を発見しました。 ! !

[root@linux-node2 ~]# telnet smtp.163.com 25

220.181.12.17 を試行しています...

^C

[root@orcherstrator ~]# nc -vz -w 1 smtp.163.com 25

nc: smtp.163.com ポート 25 (tcp) への接続がタイムアウトしました: 操作が進行中です

nc: smtp.163.com ポート 25 (tcp) への接続がタイムアウトしました: 操作が進行中です

nc: smtp.163.com ポート 25 (tcp) への接続がタイムアウトしました: 操作が進行中です

nc: smtp.163.com ポート 25 (tcp) への接続がタイムアウトしました: 操作が進行中です

nc: smtp.163.com ポート 25 (tcp) への接続がタイムアウトしました: 操作が進行中です

nc: smtp.163.com ポート 25 (tcp) への接続がタイムアウトしました: 操作が進行中です

nc: smtp.163.com ポート 25 (tcp) への接続がタイムアウトしました: 操作が進行中です

nc: smtp.163.com ポート 25 (tcp) への接続がタイムアウトしました: 操作が進行中です

サーバーがサードパーティのメールボックスとの接続をまったく確立できないことが判明しました。問題を発見して対処を開始した後、Alibaba Cloud サーバーがポート 25 をブロックしており、ブロック解除を申請する必要があることがわかりました。よし!管理コンソールにログインしてアプリケーションを開始してください。 ! !

Alibaba Cloud のレビュースピードはかなり速く、2 時間以上で結果がフィードバックされました。しかし、見ているだけで血を吐きそうになります! ! !

他の方法しか考えられません! !最終的に163メールボックスの465暗号化ポートを使用することを決定しました

[root@orcherstrator ~]# telnet smtp.163.com 465

220.181.12.14 を試行しています...

smtp.163.comに接続しました。

エスケープ文字は '^]' です。

^C

外部ホストによって接続が閉じられました。

root@orcherstrator ~]# nc -vz -w 1 smtp.163.com 465

smtp.163.com 465 ポート [tcp/urd] への接続に成功しました。

希望があるようです! ! ! /etc/mail.rcの設定を変更する

[email protected] を設定します

smtp="smtps://smtp.163.com:465" を設定します

[email protected] を設定します

smtp-auth-password=xxxxx を設定します

smtp-auth=ログインを設定します

SMTP-use-starttls を設定する

ssl-verify=ignore を設定する

nss-config-dir=/etc/pki/nssdb/ を設定します。

[root@linux-node2 ~]# echo 'hello' |mail -v -s "test" [email protected]

ホスト smtp.163.com を解決しています...完了しました。

123.125.50.133 に接続しています...接続されました。

証明書のエラー: ピアの証明書発行者が認識されません。##ピア証明書がありません

DNS名の比較: "*.163.com"

SSLパラメータ: cipher=AES-128-GCM、keysize=128、secretkeysize=128、

発行者=CN=GeoTrust SSL CA - G3、O=GeoTrust Inc.、C=US

subject=CN=*.163.com、O="NetEase (Hangzhou) Network Co., Ltd",L=杭州、ST=浙江、C=CN

220 163.com Coremail システム用スパム対策 GT (163com[20141201])

>>> EHLO Linux-Node2

250メール

250-パイプライン

250-AUTH ログイン プレーン

250-AUTH=ログインプレーン

250コアメール 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UFVHs-cUCa0xDrUUUUj

250-スタートルス

250 8ビット

>>> 認証ログイン

334 dXNlcm5hbWU6

>>> eXVleXVhbmN1bkAxNjMuY29t

334 UGFzc3dvcmQ6

>>> aGVsbG9uaWhhbzE5ODkxMA==

535 エラー: 認証に失敗しました

SMTP サーバー: 535 エラー: 認証に失敗しました

「/root/dead.letter」11/299

. . . メッセージは送信されませんでした。##電子メールは送信されませんでした。

今のところネット上ではメールは受信できると書いてあるのですが、どうしても受信できないというケースばかりです。それではエラーに応じて解決してみましょう! ! !証明書を取得する

[root@linux-node2 ~]# mkdir -p /root/.certs/

[root@linux-node2 ~]# echo -n | openssl s_client -connect smtp.163.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/163.crt

深さ=2 C = US、O = GeoTrust Inc.、CN = GeoTrust Global CA

戻り値の確認:1

深さ=1 C = US、O = GeoTrust Inc.、CN = GeoTrust SSL CA - G3

戻り値の確認:1

深さ=0 C = CN、ST = 浙江、L = 杭州、O = "NetEase (Hangzhou) Network Co., Ltd"、CN = *.163.com

戻り値の確認:1

終わり

[root@linux-node2 ~]# certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt

[root@linux-node2 ~]# certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/163.crt

[root@linux-node2 ~]# certutil -L -d /root/.certs

証明書ニックネーム信頼属性

SSL、S/MIME、JAR/XPI

ジオトラスト SSL CA C,,

[root@linux-node2 ~]# cd /root/.certs/

[root@linux-node2 .certs]# certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i 163.crt

注意: 秘密鍵が存在する場合、信頼フラグ u は自動的に設定されます。

[root@linux-node2 .certs]# cd

[root@linux-node2 ~]# vim /etc/mail.rc

[email protected] を設定します

smtp="smtps://smtp.163.com:465" を設定します

[email protected] を設定します

smtp-auth-password=xxxxx を設定します

smtp-auth=ログインを設定します

SMTP-use-starttls を設定する

ssl-verify=ignore を設定する

nss-config-dir=/root/.certs を設定します

[root@linux-node2 ~]# echo 'hello' |mail -v -s "test" [email protected]

ホスト smtp.163.com を解決しています...完了しました。

123.125.50.132 に接続しています...接続されました。

DNS名の比較: "*.163.com"

SSLパラメータ: cipher=AES-128-GCM、keysize=128、secretkeysize=128、

発行者=CN=GeoTrust SSL CA - G3、O=GeoTrust Inc.、C=US

subject=CN=*.163.com、O="NetEase (Hangzhou) Network Co., Ltd",L=杭州、ST=浙江、C=CN

220 163.com Coremail システム用スパム対策 GT (163com[20141201])

>>> EHLO Linux-Node2

250メール

250-パイプライン

250-AUTH ログイン プレーン

250-AUTH=ログインプレーン

250コアメール 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UF6b612UCa0xDrUUUUj

250-スタートルス

250 8ビット

>>> 認証ログイン

334 dXNlcm5hbWU6

>>> eXVleXVhbmN1bkAxNjMuY29t

334 UGFzc3dvcmQ6

>>> aGVsbG9uaWhhbzE5ODk=

235 認証成功

>>> メール送信者:<[email protected]>

250 メールOK

>>> 送信先:<[email protected]>

250 メールOK

>>> データ

354 データは <CR><LF> で終了します。<CR><LF>

>>> .

250 メール OK が smtp2 としてキューに入れられました、DNGowADH53eJp5BbGYUHAA--.2S2 1536206732

>>> 終了

221 さようなら

ついに成功しました! ! ! !

注: 遭遇した問題が解決できるかどうかに関わらず、お互いにコミュニケーションを取り、一緒に改善していくことを歓迎します。

以下もご興味があるかもしれません:
  • Alibaba Cloud CentOS Linuxサーバー上にpostfixを使ってメールサーバーを構築する方法の詳しい説明
  • CentOSは電子メールを送信するためにmuttとmsmtpを設定します
  • CentOS 7.2 でメール サーバー (Postfix) をインストールして展開する詳細な手順
  • CentOS で Sendmail メール サーバーを構築するための詳細な手順
  • CentOS 7.2 でメールサーバー (Postfix) を導入

<<:  jQueryはシャトルボックス機能を実現する

>>:  Mac OS 10.11 での MySQL 5.7.12 のインストールと設定のチュートリアル

推薦する

HTML ページジャンプとパラメータ転送の問題

HTMLページジャンプ: window.open(url, "", "...

tdが空の場合に境界線を表示する方法

以前、CSS を使用してテーブルの border + bordercolordark + borde...

nofollowタグの使用と分析に関する簡単な説明

nofollowをめぐる論争Zac と Guoping の間では、nofollow が PR を無駄...

TypeScript インターフェース定義ケースチュートリアル

インターフェースの役割:インターフェース (英語: interface) の機能は、簡単に言えば、コ...

Vueの子コンポーネントが親コンポーネントのメソッドを呼び出す場合の詳細な説明

1. 子コンポーネントのthis.$parent.eventを通じて親コンポーネントメソッドを直接呼...

Dockerコマンドは一般ユーザーが実行できるように実装されている

dockerをインストールすると、通常はdockerユーザーグループが作成されます。ステップ2: 現...

...

Win7x64でのMySQL 5.7.18解凍版のインストール方法

関連記事: Win7 x64 に解凍版の mysql 5.7.18 winx64 をインストールする...

Baidu の https 認証プロンプト「http サイトを 301 から https サイトにリダイレクトしてください」の解決方法の詳細な説明

最近、ウェブサイトを https アクセスに変換したいのですが、すべて完了した後、Baidu Web...

Ubuntu の Python で C/C++ メソッドを呼び出すダイナミック リンク ライブラリの詳細な説明

ブーストをインストールPython から C/C++ を呼び出す方法はたくさんあります。この記事では...

Vue3+el-tableは行と列の変換を実現します

目次行と列の変換トランスクリプトの構成を分析するvue3 + el-table で作成されたトランス...

必見の JavaScript 面接質問 10 選のまとめ (おすすめ)

1.これは1. 誰が誰に電話をかけますか?例: 関数foo(){ console.log(&quo...

MySQL ビューの一貫性を確保する方法の詳細な説明 (チェック オプション付き)

この記事では、例を使用して、MySQL ビューの一貫性を確保する方法 (チェック オプションを使用)...

TypeScript での関数オーバーロード

目次1. 関数シグネチャ2. 関数のオーバーロード2.1 オーバーロードされたシグネチャは呼び出し可...

Tomcatにデプロイされたアプリケーションがフロントエンドページにアクセスできない問題について

最近、実践的なトレーニング プロジェクトを実行する際に ssm フレームワークを使用しました。プロジ...