フォーラム掲示板について

以下の目的、注意点などご確認いただき、ご使用ください。

目的
Connect-CMSのユーザやConnect-CMSに興味のある方同士で自由に意見交換できる場を提供する目的で、コミュニティ掲示板として提供しています。
投稿方法
このサイトにユーザー登録することで、投稿することができます。
投稿内容
投稿内容は公開されます。
Connect-CMSに無関係な内容が記載されたと判断した場合、削除することがあります。
バグ情報
バグ(不具合)はGithub のIssues(https://github.com/opensource-workshop/connect-cms/issues)に記載していただくと、開発者に伝わりやすくなります。
また、セキュリティなど重大な事象の場合は、お問い合わせページよりお知らせください。優先的に調査いたします。
また、貢献ガイド(https://connect-cms.jp/abount/contributions)も参照をお願いします。

フォーラムでのサポート範囲

当フォーラムでは、Connect-CMSのトラブルなどの相談も記載いただけますが、作業を肩代わりするものではありません。
作業の依頼は、株式会社オープンソース・ワークショップの調査メニューなどをご検討ください。
https://opensource-workshop.jp/service/rescue

フォーラム掲示板

Re9: 問合せフォームが送信できません env修正後 WAFの状態

2024年4月23日 00時56分 [公星]

 
ご確認ありがとうございます。
 
ご提示のログを拝見し、調べてきました。
現象を再現できたような気がするため、以下に記述します。
(ただし、正しい理解に至っていないため、解決策として信用してはいけない)
  
------

こちらの検証での結論として、「.env」ファイルで、

MAIL_HOST=初期ドメイン.sakura.ne.jp

と記述すると、正常に送信できました。
 
MAIL_USERNAME= と MAIL_FROM_ADDRESS= は
独自ドメインを用いたメールアドレスで構いません。
 

また、

MAIL_HOST=独自ドメイン
( さくらのレンタルサーバーのコントロールパネルで共用SSLになっているもの) 

だと、正常に送信できました。
  

しかし、 

MAIL_HOST=独自ドメイン
( 「他社で取得したドメインを移管せずに使う」で持ってきて、
  さくらのレンタルサーバー内で Let's Encrypt の証明書を取得して独自SSLになっているもの)
 

だと、

stream_socket_enable_crypto(): Peer certificate CN=`*.sakura.ne.jp' did not match expected CN=`独自ドメイン'

のエラーが出て、送信されませんでした。
  

ーーー
 
エラーの記述から「ピア証明書の検証でCNの名前が一致しないこと」を
問題視しているのだと思いますが、その内容に対する理解が及ばず、
私の目の付け所の適切性および妥当な解決策について保証できません。
(ここまで書いておいて、的を外しているかもしれない)

力不足で申し訳ございません。
恥ずかしくも、この辺りが私の限界のようです。
 

スレッドの記事一覧
netcommons2から移植している初心者です。何とか、形ができてきましたが問合せメルで止まっています。
動作環境
さくらレンタルサーバー
connect-CMSのバージョンは 1.17.2
PHPのバージョンは 8.1
問合せフォームの確認画面で送信ボタンを押すと
 Error:500 internal server error. (システムでエラーが発生しました)
が表示され、問合せメールが送信できません。
さくらの独自ドメインのメールアドレスを作成しています。
このアドレスは、thunderbirdで送受信できています。
可能であれば、エラーの原因または対処法を教えてください。
よろしくお願いします。

  
次の図のようなエラーであれば、
メール設定が正しく行われていない可能性があります。
 

メール設定のエラー

 
-------

〈 該当する場合の対応 〉上記のエラーでなければ無視してください
 

フォームの「フォーム設定」でメール送信先を設定したにも関わらず、
 

フォームではメールの送信を設定した 
  
メールが送信されない場合、「.env」ファイルでメール用の設定
記述されていない、あるいは 記述に不備がある可能性が考えられます。
  

---

サーバーのConnect-CMSがあるディレクトリ(インストール作業を行った場所)に行き、
「.env」ファイル内でメール設定の項目を確認してください。
 
さくらのコントロールパネルの「ドメイン/SSL」に独自ドメインを登録し、
「メール」でメールユーザーを作成している場合、以下のような感じになります。

MAIL_DRIVER=smtp
 
MAIL_HOST=example.com  #独自ドメイン  または さくらの  初期ドメイン.sakura.ne.jp
 
MAIL_PORT=587
 
MAIL_USERNAME=abcde@example.com  #メールユーザー名@ドメイン名
                     #要はさくらで作ったメールアドレス
 
MAIL_PASSWORD=abfr*%-f_DE     #メールユーザーのパスワード
                    #コメントアウトになるため、「#」は使えない
 
MAIL_ENCRYPTION=tls
 
MAIL_FROM_ADDRESS=abcde@example.com   #送信元として使うメールアドレス
 
MAIL_FROM_NAME="ABC事務局"     #送信者として表示する名前
 

 (↑ 全学スペースが入っているため、コピー&ペーストはしない)  

 
Googleなどで「さくらのレンタルサーバー Laravel メール設定」で検索すると、
画像つきで詳しい解説が見つかると思います。

 

丁寧な回答ありがとうございます。
envをしらべたら、設定できていませんでした。
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

ありがとうございます。

envをwinSCPで修正しましたが、問合せフォームの確認画面で同じ  Error:500 internal server error. (システムでエラーが発生しました)です。
envを修正したので、ネットで検索して
php artisan cache:clear
php artisan config:cache
やってみましたが、だめでした。
指示いただいた内容(ドメイン名、メールアドレス、パスワード)は間違っていないと思います。何か他にありますでしょうか。よろしくお願いします。

TKさんこんばんわ

logの内容は貼れますか?

  • storage/logs配下にログファイルがあります。エラー画面を出した日時で何某か記録されてる筈なので、その内容

 
解決に至らず、申し訳ございません。
 
自分のさくらのレンタルサーバーで検証したところ、以下のようになりました。
該当するエラーがあればよいのですが、ない場合は何か追加情報をください。
よろしくお願いします。
 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

MAIL_DRIVER=smtp を間違えてみた

Error:500 internal server error. (システムでエラーが発生しました)

  

  

MAIL_HOST=独自ドメイン または 初期ドメイン.sakura.ne.jp を間違えてみた

Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Connection could not be established with host example.com :stream_socket_client(): php_network_getaddresses: getaddrinfo for example.com failed: Name does not resolve

 

 

MAIL_PORT=587 を間違えてみた(58799にした)

Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Connection could not be established with host example.com :stream_socket_client(): Unable to connect to tcp://example.com:58799 (Connection refused)

 

 

MAIL_USERNAME= を間違えてみた

Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Expected response code 250 but got code "530", with message "530 5.7.0 Authentication required "

 

 

MAIL_PASSWORD= を間違えてみた

Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Failed to authenticate on SMTP server with username "指定したMAIL_USERNAME" using 3 possible authenticators. Authenticator CRAM-MD5 returned Expected response code 235 but got code "535", with message "535 5.7.0 authentication failed ". Authenticator LOGIN returned Expected response code 235 but got code "535", with message "535 5.7.0 authentication failed ". Authenticator PLAIN returned Expected response code 235 but got code "535", with message "535 5.7.0 authentication failed ".

 

 

MAIL_ENCRYPTION=tls を間違えてみた(tlsaaと書いた)

 Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Connection could not be established with host example.com :stream_socket_client(): Unable to connect to tlsaa://example.com:587 (Unable to find the socket transport "tlsaa" - did you forget to enable it when you configured PHP?)

 

 

MAIL_FROM_ADDRESS= を間違えてみた

Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Expected response code 250 but got code "553", with message "553 5.1.8 <間違えたメールアドレス>... Domain of sender address 間違えたメールアドレス does not exist "

 

 

MAIL_FROM_NAME="検証用サイト" を間違えてみた
 ("を外し、MAIL_FROM_NAME=ABC検証用サイトCBA と記述)

→ 問題なく送信された。送信者はABC検証用サイトCBAになって届く。

 
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
 
 

  
要らぬかもしれませんが、
もう少し調べてきたので書いていておきます。

--------------------------------

 
初期状態は以下のとおりです。

MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

この初期状態でフォームからメールを送信すると、
以下のエラーがでました。

 Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Cannot send message without a sender address

 

 

【 追加の検証 】

MAIL_DRIVER=
MAIL_HOST=
MAIL_PORT=
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=
MAIL_FROM_ADDRESS=
MAIL_FROM_NAME=

を正しく埋めているとして、
行ごとコメントアウトした場合のエラー構文です。

 

 

MAIL_XXXXXX をすべてコメントアウトした

Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Expected response code 354 but got code "503", with message "503 RCPT command expected "

 

 

MAIL_DRIVER=smtp までを有効にして送信した
 (MAIL_HOST= から下をコメントアウトした)

Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Expected response code 354 but got code "503", with message "503 RCPT command expected "

 

 

MAIL_HOST= までを有効にして送信した
 (MAIL_PORT=587 から下をコメントアウトした)

Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Expected response code 250 but got code "530", with message "530 5.7.0 Authentication required "

 

 

MAIL_PORT=587 までを有効にして送信した
 (MAIL_USERNAME= から下をコメントアウトした)

Error:メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Expected response code 250 but got code "530", with message "530 5.7.0 Authentication required "

 

 

MAIL_USERNAME= までを有効にして送信した
 (MAIL_PASSWORD= から下をコメントアウトした)

メール設定エラーのため、メールを送信できませんでした。システム管理>メール設定を見直してください。(500 internal server error.)
Failed to authenticate on SMTP server with username "指定したUSER_NAME" using 3 possible authenticators. Authenticator CRAM-MD5 returned Expected response code 235 but got code "535", with message "535 5.7.0 authentication failed ". Authenticator LOGIN returned Expected response code 235 but got code "535", with message "535 5.7.0 authentication failed ". Authenticator PLAIN returned Expected response code 235 but got code "535", with message "535 5.7.0 authentication failed ".

 

 

MAIL_PASSWORD= までを有効にして送信した
 (MAIL_ENCRYPTION=tls から下をコメントアウトした)

送信されたが、受け取れなかった。どこかに行った。

 

 

MAIL_ENCRYPTION=tls までを有効にして送信した
 (MAIL_FROM_ADDRESS= から下をコメントアウトした)

送信されたが、受け取れなかった。どこかに行った。

 

 

MAIL_FROM_ADDRESS= までを有効にして送信した
 (MAIL_FROM_ADDRESS から下をコメントアウトした)

送信された。「Example」という送信者名で届いた

 

 

すべて有効にしてメールを送信した

意図どおりにメールが届いた。

  

-------------------------

 

 
あと思いつくのは、さくらのレンタルサーバーのコントロールパネルから
WAF(Web Application Firewall)を利用しない設定にしてみることでしょうか。

 

皆様、お騒がせして申し訳ありません。問合せフォームだけやってエラーが出ましたので、そのlogを添付します。内容が確認できますでしょうか。よろしくお願いします。

laravel-2024-04-22.log

お手数おかけします。WAFを調べたら、利用状態は無効になっていました。

Re9: 問合せフォームが送信できません env修正後 WAFの状態
2024-04-23 [公星]

 
ご確認ありがとうございます。
 
ご提示のログを拝見し、調べてきました。
現象を再現できたような気がするため、以下に記述します。
(ただし、正しい理解に至っていないため、解決策として信用してはいけない)
  
------

こちらの検証での結論として、「.env」ファイルで、

MAIL_HOST=初期ドメイン.sakura.ne.jp

と記述すると、正常に送信できました。
 
MAIL_USERNAME= と MAIL_FROM_ADDRESS= は
独自ドメインを用いたメールアドレスで構いません。
 

また、

MAIL_HOST=独自ドメイン
( さくらのレンタルサーバーのコントロールパネルで共用SSLになっているもの) 

だと、正常に送信できました。
  

しかし、 

MAIL_HOST=独自ドメイン
( 「他社で取得したドメインを移管せずに使う」で持ってきて、
  さくらのレンタルサーバー内で Let's Encrypt の証明書を取得して独自SSLになっているもの)
 

だと、

stream_socket_enable_crypto(): Peer certificate CN=`*.sakura.ne.jp' did not match expected CN=`独自ドメイン'

のエラーが出て、送信されませんでした。
  

ーーー
 
エラーの記述から「ピア証明書の検証でCNの名前が一致しないこと」を
問題視しているのだと思いますが、その内容に対する理解が及ばず、
私の目の付け所の適切性および妥当な解決策について保証できません。
(ここまで書いておいて、的を外しているかもしれない)

力不足で申し訳ございません。
恥ずかしくも、この辺りが私の限界のようです。
 

連絡ありがとうございます。月末締の仕事が終わり、落ち着いて作業ができるようになりました。ご指摘の MAIL_HOST=初期ドメイン.sakura.ne.jp に変更したら、エラーが消えました。独自ドメインのメールアドレスに 件名がConnect Mailが届きました。本文が記述されてませんが、こちらの設定の問題だと思います。助かりました。お手数おかけしました。

  
さくらのレンタルサーバーのメールサーバーを使って送信する場合、

MAIL_HOST=初期ドメイン名.sakura.ne.jp

と入力するのが正統のようです。
いくつかの説明サイトを見てきましたが、そのような記述でした。

たまたま私が

MAIL_HOST=独自ドメイン
( さくらのレンタルサーバーのコントロールパネルで共用SSLになっているもの)

で使用していたため、独自ドメインでも可能だと思っていましたが、
混同してはいけない誤解を生む不適切な記述であったと思います。
申し訳ございません。
 
恥ずかしいため、
コメントを格納しているデータベース内で、以前の私の投稿から

MAIL_HOST=example.com  #独自ドメイン  または さくらの初期ドメイン.sakura.ne.jp

の打ち消し部分を削除してほしいと思います。

--- --- ---

フォームからの送信メールの件名と本文は、
それぞれ「フォーム設定」にある「本登録メール」項目の
本登録メール件名 本登録メールフォーマット で指定します。
 
その際、枠の下で紹介されている[[site_name]]  や [[body]] のタグを使うと、
送信の際にサイト名やフォームの入力内容などを自動で代入してくれます。
 

フォームからの返信メールの本文 
 
---

さらに、その設定項目の下にある 本登録後のメッセージ にも何か書いておくと、
フォームを使用した利用者に対して親切だと思います。
 
 

有用な情報提供ありがとうございます。

さくらインターネットインストール時の.envのMAIL_xxxxの設定を、wikiに記載させて頂きました。

Install sakura

ご連絡まで。

>   
> 次の図のようなエラーであれば、
> メール設定が正しく行われていない可能性があります。
>  

> メール設定のエラー

>  
> -------

> 〈 該当する場合の対応 〉上記のエラーでなければ無視してください
>  

> フォームの「フォーム設定」でメール送信先を設定したにも関わらず、
>  

> フォームではメールの送信を設定した 
>   
> メールが送信されない場合、「.env」ファイルでメール用の設定
> 記述されていない、あるいは 記述に不備がある可能性が考えられます。
>   

> ---

> サーバーのConnect-CMSがあるディレクトリ(インストール作業を行った場所)に行き、
> 「.env」ファイル内でメール設定の項目を確認してください。
>  
> さくらのコントロールパネルの「ドメイン/SSL」に独自ドメインを登録し、
> 「メール」でメールユーザーを作成している場合、以下のような感じになります。

MAIL_DRIVER=smtp
>  
>
MAIL_HOST=さくらの  初期ドメイン.sakura.ne.jp
>
 
> MAIL_PORT=587
>
 
> MAIL_USERNAME=abcde@example.com  #メールユーザー名@ドメイン名
>                      #要はさくらで作ったメールアドレス
>  
>
MAIL_PASSWORD=abfr*%-f_DE     #メールユーザーのパスワード
>                     #コメントアウトになるため、「#」は使えない
>
 
> MAIL_ENCRYPTION=tls
>
 
> MAIL_FROM_ADDRESS=abcde@example.com   #送信元として使うメールアドレス
>
 
> MAIL_FROM_NAME="ABC事務局"     #送信者として表示する名前
 

 (↑ 全学スペースが入っているため、コピー&ペーストはしない)  

>  
> Googleなどで「さくらのレンタルサーバー Laravel メール設定」で検索すると、
> 画像つきで詳しい解説が見つかると思います。

> 指示していただいた、[[body]] 等で希望通りの問合せフォームができ、送信できました。ありがとうございます。