質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

3回答

1258閲覧

Localhost の Wordpress で メール送信

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

1クリップ

投稿2018/06/13 13:30

編集2018/06/14 13:38

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ページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

実際に外部にメールを送信する必要がないのであれば(メールアプリなどで確認した、Gmail でスパムフォルダに入らないか確認したいなど)、MailCatcher を使用するという手があります。

https://mailcatcher.me/

これは、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 を戻してください。

メールの確認

  1. WordPress の フォームからメールを送信する
  2. 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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/15 17:42 編集

ありがとうございます。 教えていただいた手順と、下記の手順を追加することで確認できました。 1. WordPress のプラグイン Mailcatcher for WordPress を追加 & 有効化 2. wp-config.php へ define(WP_MAILCATCHER, true); を記入
退会済みユーザー

退会済みユーザー

2018/06/15 17:43

本当はphp.iniだけでよいのかもしれませんが、受信できませんでした。
退会済みユーザー

退会済みユーザー

2018/06/15 18:46 編集

プラグインは不要ですよ。 sendmail_path = '/usr/bin/env catchmail -f imamura@wordpress.dev' の部分を以下の手順で書き換えると受信できるようになると思います。 下記のコマンドをターミナルで実行 $ which catchmail そうすると $ which catchmail /Users/example/.anyenv/envs/rbenv/shims/catchmail みないな感じで、catchmail コマンドがある場所がでてくるので sendmail_path = '/usr/bin/env /Users/example/.anyenv/envs/rbenv/shims/catchmail -f imamura@wordpress.dev' という感じで書き換えると動くはずです。
退会済みユーザー

退会済みユーザー

2018/06/16 04:20

ご指摘の通り、「catchmail コマンドのインストール先を確認」の部分を飛ばしていました。 プラグインを使わなくても受信できるようになりました。 ありがとうございます。
guest

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
takyafumin

総合スコア2335

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/14 12:05

Authorized redirect URIを「承認済みのリダイレクト URI」に設定して、保存をクリックすると表示されます。 コメント欄に画像をアップロードできないようなのでこちらで。 https://screenshot.net/jp/lz4nqsd
takyafumin

2018/06/14 12:34

> コメント欄に画像をアップロードできないようなのでこちらで 質問に追記することで、画像を質問に添付できますよ。 画像自体は上記URLで確認しました。
退会済みユーザー

退会済みユーザー

2018/06/14 13:33

なるほど localhost だと大丈夫なんですね。また画像の件、了解しました。 mamp では ssl にしてローカルで https 接続しています。 ただ、mampは localhost に対してはssl設定ができず、別名にしなくてはいけないようなのです。 そのためlocalhostでwordpressを動かせないという事情もあります。
退会済みユーザー

退会済みユーザー

2018/06/15 17:23

ありがとうございます。 Mamp自体を調整する方法ですね。
guest

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 を書き換えていたはずなので、同じ内容になるはずなのですが...)

mac MAMP から メール送信
【MAMPでGmail送信】Postfixの設定について

投稿2018/06/13 23:44

編集2018/06/14 01:36
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/14 00:43

回答ありがとうございます。 gmailしか持っていない状態なので、gmailにて送信できないかを試しています。 教えていただいたサイトを参考に設定していますが送信はできていないようです。 エラーもなく、ログも残らない…。 **Note: Some providers do not allow Smart-Hosts, like Google Mail.** とgmailは難しいかもしれません。 他のフリーメール(yahooとか?)だとできるかもしれません。もう少し調べてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問