CakePHP2.xでRFC準拠違反のメールアドレス宛にメール送信する方法。予想は裏切り、期待は裏切らず。>CakePHPCakePHP2.xでRFC準拠違反のメールアドレス宛にメール送信する方法。Error)が出るとの申告を受けました。RFC準拠違反のメールアドレスとはいえ、500エラーが出るのは拙かろうということで、メールを送信するよう変更した備忘録です。CakeEmailでRFC準拠違反のメールアドレス宛に送信するCakePHP2(Ver2.3.10)のCakeEmailを利用してメールフォームを作成しているのですが、ある日、携帯アドレス宛にメール送信する際に500エラーが出るとの申告を受けました。聞いてみると、送信先のメールアドレスというのが、RFC準拠違反の、ezweb.ne.jp宛。CakePHP2.3を調査すると、どうやらCakeEmailではメールアドレスをセットした際にバリデーションチェック(Validation::email())を行い、RFC非準拠のアドレス宛へは送信せず「SocketException」が返る仕様の様子。エラーログにも確かに「SocketException」が記録されていました。ちなみにRFC準拠違反のメールアドレスとはドットが連続したり、ドットで終わったりするメールアドレスのこと。準拠違反のメールアドレスが取得できたという過去がある以上、それらのアドレス宛にも送信できないとマズイので、とりあえず、Validation::email()の正規表現を緩いものに変えてしまうということに行き着きました。Validation::email()は2.3.10では、cakephp/lib/Cake/Utility/Validation.php1cakephp/lib/Cake/Utility/Validation.phpに定義されていることがわかったので、そのファイルを、cakephp/app/Utility/Validation.php1cakephp/app/Utility/Validation.phpにコピーします。'/^[\.a-z0-9!#$%&\'*+\/=?^_`{|}~-]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]{2,6}$/i';とりあえず、緩くしてみました。'Utility');を定義します。toogieのプログラムはメール送信は全てAppController中に定義しているアクションを利用しているため、AppControllerに定義しています。CakeEmailと並べたら以下のようになりました。{?中略?}これでとりあえずは問題なく動作しました。php-tipshttp://php-tips.com/php/cakephp-php/2013/07/avoid-cakeemail-email-address-validatio上記サイト様によると、CakePHP2.4.0からは、メールアドレス検証用の正規表現を任意のものに変更できる仕様になるようです。2.4.0にアップデートしても良かったのですが、手持ちの知識で何とかしてみるのも、たまには良いでしょうって事で。メール送信TwitterFacebookGoogle+PocketB!はてブLINE関連記事CakePHP2.xで、CakeEmailを使ってメール送信してみる。CakePHP1.3の時はqdmailを使ってメール送信していましたが、2系統ではデフォルトで実装されている「CakeEmail」というコアライブラリを使ってメール送信するのがスマートなやり方のようです。CakeEmailでメール送信する時はどうするのかを忘備録代わりにポストです。CakePHPは、2.3.6を使っています。CakePHPで楽天APIを叩いてみる(3)コントローラー編ではCakePHPで楽天APIの3回目、コントローラー編です。コントローラーでモデル及びコンポーネントを呼び出し、結果を取得するという流れです。ページ送りに関する設定も行います。CakePHP2.xでトランザクションする方法。DBに登録する時に使う、トランザクションですが、CakePHP2.xでの方法です。Cake1.3とそう変わりませんが、忘備録としてポストです。CakePHP2.3.6で試しています。http://cakephp.org.」てのが追加されます。不要なので、その一文を消す方法です。綺麗なCakePHPコードにしたかったのと、主ドメインのバーチャルドメインで運用予定で、運用前の確認URLはチルダ付きの少々特殊なURLとなるという理由から、画像表示やリンクなど、全てHTMLヘルパーを利用して書いていたのですが、iframeのHTMLヘルパーが無いことにはたと気づくきました。PREV【PHP】現在実行中ファイルのひとつ上の階層ディレクトリを取得する方法NEXT「ワールドトリガー」ぼんち揚をようやく発見したので確保。Codeで、カーソル行の背景色を設定する方法を備忘録としてポストします。【Laravel】Bladeテンプレートでレイアウトを共通化するLaravelのBladeにて用意されている「継承」と「セクション」を使い、テンプレートを組み合わせてレイアウトを作成していく方法をまとめます。【PHP】オブジェクト形式のデータを作成する方法PHPでオブジェクト形式データの作成方法をポストしておきます。Widgets」にてエラーが出たのて対応した件WordPressのバージョンを5.3にアップグレードしましたら、久々にプラグインでの不具合が出たので、メモとして残しておきたいと思います。【Laravel】テンプレートエンジン「Blade」の構文LaravelのBladeテンプレートの基本構文をまとめます。このWindowsのコピーは正規品ではありません」と表示された件。HTMLなどプログラムネタ、スマホやタブレット、カメラ・写真、たまに日記などを扱っています。個人的な備忘録と化しているカテゴリもありますが、1週間に1回の更新を目指しつつ、ネタ探しの毎日です。運営者について更新履歴お問い合わせサイトマップにんじん予想は裏切り、期待は裏切らず。