安全にメールを送信したい
WordPressで安定してメール送信(フォームで自動返信、WooCommerceの通知など)するには、外部のメール送信サーバーを活用すべきです。おすすめは、SendGrid を利用することです。日本語サイトもあるため、使いやすいと思います。詳細は、以下。
WP Mail SMTP プラグインを使う理由
SendGridに登録する方法がわからない、難しく感じる、まだサイトがない(実績がないので審査に落ちるかもと不安を感じる)などの場合は、別の方法を検討することになります。
別の方法として候補に上がるには「ご自身が普段利用してる『メールアカウント』」を使うことです。
例えば、レンタルサーバーに契約し、独自ドメイン設定をすると、独自ドメインでメールを送信できるようになります。この時の「メール送信サーバー」を利用することで、迷惑メールになりづらくできます。
ただし、その設定における危険性について理解しておく必要があります。
なぜ、危ないのか?
以下のような設定をしますが、ここにセキュリティ上の危険が入り込みます。
まず、WP mail SMTPプラグインで「Other SMTP」を選び設定することになると思います。

次に、メールのアカウントを入力します。メールソフトで入力するように、アカウントとパスワードを入力することになります。以下のようなメッセージにあるように、データベースに「パスワードが、平文(ひらぶん・暗号化せず)」で保存されます。

データベースに、パスワードがそのまま保存されていると、何らかのプラグインでその情報を盗み出すことも可能です(訳のわからないプラグインをいれる事はないと思いますが)。
また、世界中に向かって公開されているサーバーに「パスワードを平文で保存する」のは、避けたいところです。
過去に、SonyやAdobeも平文でパスワードを保存しており、そのデータが流出して問題になりました。通常、パスワードは「ハッシュ関数で、一方向暗号化」をします。結果、本当のパスワードを推測するのが難しい状態になります。
ところが、WordPressでパスワードを保持しておかないと、SMTPサーバーにログインできないため、平文で保存するしかありません。
メールアカウントが、管理者アドレスの場合、特に危ない
ここに安全性の問題が生じます。レンタルサーバーによって、メールアドレスのパスワードと、レンタルサーバーの管理者ログインのパスワードが同じ場合があります。
もし、WordPressに保存したメールのパスワードが流出したら、レンタルサーバーの管理パスワードの流出になり危険です。
API Key を使う理由
以上のことから、パスワードの流出を避けるためにAPIキーがあります。ログイン用のパスワードとは別のパスワードを生成し、そのパスワード経由でできることを制限するなどして、セキュリティを高めます。
どうしたら良いか?
- SendGridを使う
- サーバーから(デフォルト)送信する(DNS設定などを工夫すれば解決することもあります)
- SMTPサーバーを利用するなら、専用のアカウントを作って、流出しても問題を減らす
- WP Mail SMTPに紹介されている方法をとる