
Wordpressの自作プラグインの一部からメールを送信しようとしています。
しかし、ローカル環境からはメールが送信できません。
Mac Mamp Pro + Wordpress 4.9.6–ja
こちらのサイを参考にして、プラグインとGoogleCloudPlatformを利用しようとしました。
【OAuth認証】WP Mail SMTPでGmailを設定する方法
WP Mail SMTP by WPForms
GoogleCloudPlatform
設定は順調に進んだのですが、最後の Authorized redirect URI で躓いています。
エラーは次のように表示されています。
無効なリダイレクト: https://localhost-ssl(略)/wp-admin/options-general.php?page=wp-mail-smtp&tab=auth はパブリック トップレベル ドメイン(.com、.org など)で終わる必要があります
エラーの内容からするとlocalhostからは利用できないのかもしれません。
【回答より追記】 localhost は許可されているようですが、Mampでssl接続を実現するためlocalhost以外のホスト名にする必要があり、現在は localhost-ssl:8890 で接続をしています。
上記の方法にかかわらずLocalhostからメールを送信する方法がありましたら、教えて頂けますでしょうか。
よろしくおねがいします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

回答3件
0
ベストアンサー
実際に外部にメールを送信する必要がないのであれば(メールアプリなどで確認した、Gmail でスパムフォルダに入らないか確認したいなど)、MailCatcher を使用するという手があります。
これは、Ruby の gem というパッケージ管理システムを使ってインストールします。
Mac ということなので、既に Ruby はインストール済みだと思いますので、Terminal.app を立ち上げれば直に MailCatcher をインストールできます。
MailCatcher のインストール
以下のコマンドをターミナルに入力してみてください。
※ 先頭の $ は入力しなくてでください。コードを書く上でのルールみたいなものです
sh
1$ sudo gem install mailcatcher
暫く待つとインストールが完了します。完了したら次に MailCatcher を立ち上げます。
sh
1$ mailcatcher
実行すると
sh
1$ mailcatcher 2Starting MailCatcher 3==> smtp://127.0.0.1:1025 4==> http://127.0.0.1:1080 5*** MailCatcher runs as a daemon by default. Go to the web interface to quit.
こういう表示になると思います。これで、MailCatcher が起動しました。試しに http://127.0.0.1:1080 にアクセスしてみてください。何となくみたことある画面がでてきます。
MailCatcher を終了するには、http://127.0.0.1:1080 の右上にある [Quit] をクリックすると終了できます。
catchmail コマンドのインストール先を確認
下記のコマンドをターミナルで実行します。
sh
1$ which catchmail
そうすると
sh
1$ which catchmail 2/Users/example/.anyenv/envs/rbenv/shims/catchmail
みないな感じで、catchmail コマンドがある場所がでてくるので、これをメモします。MAMP の設定で使用します。
MAMP の設定
MAMP を立ち上げて左側のメニューの PHP をクリックします。
一番上に、Default version と書かれたプルダウンメニューがあると思います。そのすぐ隣に、○ の中に → が書かれたアイコンがありますのでクリックします。
アイコンをクリックすると、php.ini がテキストエディターで立ち上がりますので、⌘ + f を押して検索バーを表示さ 「mail function」を検索します。すると以下のような箇所が見つかりますので、smtp_port と sendmail_path を書き変えます。
ini
1[mail function] 2; For Win32 only. 3; http://php.net/smtp 4SMTP = localhost 5; http://php.net/smtp-port 6smtp_port = 25 7 8; For Win32 only. 9; http://php.net/sendmail-from 10;sendmail_from = me@example.com 11 12; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 13; http://php.net/sendmail-path 14;sendmail_path =
↑を↓に書き換えてください。
ini
1[mail function] 2; For Win32 only. 3; http://php.net/smtp 4SMTP = localhost 5; http://php.net/smtp-port 6smtp_port = 1025 7 8; For Win32 only. 9; http://php.net/sendmail-from 10;sendmail_from = me@example.com 11 12; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 13; http://php.net/sendmail-path 14sendmail_path = '/usr/bin/env /Users/example/.anyenv/envs/rbenv/shims/catchmail -f imamura@wordpress.dev'
書き換えが終わったら、⌘ + s で上書き保存して、MAMP を再起動させます。/Users/example/.anyenv/envs/rbenv/shims/catchmail
の部分は、$ which catchmail
で調べたものと置き換えてください。
もし、PHP のバージョンを Host 毎に変更している場合は、Default version を Host で使用している PHP のバージョンにを一時的に変更してから、○ の中に → が書かれたアイコンをクリックして編集してから、Default version を戻してください。
メールの確認
- WordPress の フォームからメールを送信する
- http://127.0.0.1:1080 にブラウザでアクセスしてメールを確認
注意
gem install
時に本当は sudo しない方がいいのですが、macOS にデフォルトインストールされている Ruby を使う場合は、sudo が必要になります。もし苦でなければ、Homebrew をインストールして、anyenv をインストールして、anyenv を使って rbenv をインストールするのが吉です。面倒に感じるかもしれませんが、今後の Mac での開発を豊かなものにするためにも、インストールしておくのオススメします。- Homebrew = パッケージ管理システム
- anyenv = env 系を管理するシステム
- rbenv = Ruby のバージョン管理ができるシステム。ユーザーディレクトリに Ruby がインストールされるので、gem を sudo なしに気兼ねなく使えるようになる。
おまけ
WordPress の開発を行う場合、Local by Flywheel を使うと、SSL の検証、MailCatcher によるメールの送受信テスト環境が一瞬で手にはいります。
投稿2018/06/14 19:52
編集2018/06/15 18:52
退会済みユーザー
総合スコア0
0
CHERRYさまの回答と違った回答になるので、imamuraさまの方で混乱しないようであればお試しください。
以下環境でメール送信の確認が出来ています。
- WordPress 4.9.6-ja
- WP Mail SMTP 1.2.5(メーラーはGmail, 自前でsmtpサーバ(postfix等)の設定はナシ)
基本的にはWP Mail SMTP by WPFormsにあるGmail documentationの手順通りで設定出来ます。
Step 1: Install the WP Mail SMTP Plugin
Step 2: Create a Web Application
Step 3: Grant Permissions and Send Test Email
「Authorized redirect URI」はWordPressを8000ポートで動作させているのでhttp://localhost:8000/wp-admin/options-general.php?page=wp-mail-smtp&tab=auth
と設定されています。これをGoogle API側に設定する必要があります。
無効なリダイレクト: https://localhost(略)/wp-admin/options-general.php?page=wp-mail-smtp&tab=auth はパブリック トップレベル ドメイン(.com、.org など)で終わる必要があります
こちらのエラーは、どのアクション時に発生していますでしょうか。
上記Stepの手順を正しく実施しているか、ご確認ください。
コメントを受けての追記
Google側でエラーになっているのですね。
Google API側のドキュメントがまだ見つけられていませんが、エラーメッセージ通りの仕様なのだと思います。
ただし、localhost
は許容されているようです。
そのため、WordPress側のドメインをlocalhost
に変更できるようであれば、変更することで回避できるかと思います。
こちら側の設定のスクリーンショットを参考に添付します。
投稿2018/06/14 11:38
編集2018/06/14 12:37総合スコア2335
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。


退会済みユーザー
2018/06/14 13:33

退会済みユーザー
2018/06/15 17:23

0
Gmail API をお使いのようですが、これは、必須なのでしょうか?
Gmail API が、必須でなく MAMP PRO 上で稼働している Web システムからメールを送信できれば良いのであれば、MAMP Pro に Postfix の設定画面があると思うので、お使いのメールのドメイン、メールサーバー、ユーザー名、パスワードを設定したら メール送信できるようにならないでしょうか?
Servers and Services > Postfix - MAMP & MAMP PRO 4 Documentation 参照。
別の方法としては、Mac に標準でインストールされている Postfix を設定する方法もあります。
(MAMP PRO のPostfix設定も Postfix を書き換えていたはずなので、同じ内容になるはずなのですが...)
投稿2018/06/13 23:44
編集2018/06/14 01:36総合スコア25234
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。

退会済みユーザー
2018/06/14 00:43

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/06/15 17:42 編集
退会済みユーザー
2018/06/15 17:43
退会済みユーザー
2018/06/15 18:46 編集
退会済みユーザー
2018/06/16 04:20