<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>phpに関するメモ-Materializing [マテリアライジング]</title>
    <link rel="alternate" type="text/html" href="http://www.materializing.net/" />
    <link rel="self" type="application/atom+xml" href="http://www.materializing.net/atom.xml" />
   <id>tag:www.materializing.net,2006://1</id>
    <link rel="service.post" type="application/atom+xml" href="http://www.materializing.net/weblog/mt-atom.cgi/weblog/blog_id=1" title="Materializing [マテリアライジング]" />
    <updated>2016-05-04T07:48:45Z</updated>
    <subtitle>web的暮らし と銘打ち、その足跡を遺していくサイトです。Movabletype,wordpress,EC-CUBE等のCMSをローカルサーバ立てて楽しんでます。それとちょびっとだけPHP。便利なソフトウェアや楽しそうなサイトも紹介中。</subtitle>
 

<entry>
    <title>シンプルSMTPサーバ「MailCatcher」使ってみる</title>
    <link rel="alternate" type="text/html" href="http://www.materializing.net/archives/2016/02/07184547.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.materializing.net/weblog/mt-atom.cgi/weblog/blog_id=1/entry_id=603" title="シンプルSMTPサーバ「MailCatcher」使ってみる" />
    <id>tag:www.materializing.net,2016://1.603</id>
    
    <published>2016-02-07T09:45:47Z</published>
    <updated>2016-05-04T07:48:45Z</updated>
    
    <summary> CMS等のメール確認動作には「MailCatcher」が便利だよ！ との情報を @kaburk より教えてもらったのでやってみました。 ちゃんとできてムホムホしてます。 kaburkさん、どうもありがとう_(．．)_ MailCatherってなに？ ■ Ma...</summary>
    <author>
        <name>arata</name>
        <uri>http://www.materializing.net/</uri>
    </author>
    
        <category term="phpに関するメモ" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.materializing.net/">
        <![CDATA[<p>
CMS等のメール確認動作には「MailCatcher」が便利だよ！<br />
との情報を <a href="https://twitter.com/kaburk">@kaburk</a> より教えてもらったのでやってみました。<br />
ちゃんとできてムホムホしてます。<br />
kaburkさん、どうもありがとう_(．．)_
</p>

<h3>MailCatherってなに？</h3>

<p>
■ <a href="http://mailcatcher.me/">MailCatcher</a><br />
送信されたメールを、ブラウザから確認できるインターフェイスを提供しているシンプルなSMTPサーバです。<br />

</p>]]>
        <![CDATA[<h3>試してみた環境</h3>

<ul>
	<li>Mac 10.8.5</li>
	<li>MAMP</li>
	<li>baserCMSでやってみた</li>
</ul>

<h3>導入手順</h3>

<p>
黒い画面開いてターミナルで行います。
</p>

<ul>
	<li>$ gem install mailcatcher</li>
	<li>※エラーが出るなど環境によっては「sudo」つける</li>
	<li>$ mailcatcher</li>
</ul>

<p>
これだけでインストール終わり。<br />
次の「mailcatcher」を実行することで起動します。<br />
起動したらブラウザで http://localhost:1080 で画面出ます。
</p>

<h4>php.ini を変更する</h4>

<p>
phpの設定ファイルを変更します。<br />
利用中の環境に依るので以下はサンプル。<br />
・例: /MAMP/bin/php/php5.5.3/conf/php.ini<br />
以下のように書換えます。
</p>

<pre><code>;sendmail_path =
　　↓↓↓
sendmail_path = /usr/bin/env catchmail
</code></pre>

<p>
これで準備完了。
</p>

<p>
テスト用のphpファイルひとつ作ってアクセス。<br />
※テスト用にはこの辺が参考になります。<br />
<a href="http://qiita.com/shuntaro_tamura/items/c0ef05cb4d4e22e78297">PHPでメールを送る - Qiita</a><br />
着弾確認。<a href="http://localhost:1080/">http://localhost:1080/</a>
</p>

<p>
baserCMSのメールフォームからも送信動作。<br />
管理側にも入力ユーザーのアドレス宛にも飛びました。
</p>


<h3>メールが到着しない場合の解決策1例</h3>

<p>
mailcather までのパスを指定すると良いかもです。<br />
ターミナルで which catchmail と打ち、出て来たパスをsendmail_pathに指定します。
</p>

<pre><code>※例
sendmail_path = /usr/bin/env /opt/local/bin/catchmail</code></pre>

<p>
この辺はダメなときはググってみてください。
</p>

<h3>導入するメリット</h3>

<p>
こんな感じの場面に良いです。
</p>

<ul>
	<li>外部に送信されないので、間違って本番環境への送信を防げる点</li>
	<li>ローカル環境からは外部へメール送信させたくないとき</li>
	<li>送信メールを手軽に表示して確認できる</li>
	<li>存在しないメールアドレスも送信できる</li>
	<li>メールはほぼリアルタイムで表示されリロード不要</li>
	<li>簡単コマンドで起動できる</li>
</ul>


<h4>あとがき</h4>

<p>
macの再起動時には自動で起動されてるワケではないので、コマンドで「mailcatcher」実行してから使いましょう。<br />
mac起動時の自動起動もできるので、この辺見てやってみると良いです。<br />
■ <a href="http://qiita.com/kagerou_ts/items/2606703e70c5eb18fb37">Mac OSXで起動時にスクリプトを実行する方法 - Qiita</a>
</p>

<p>
こんな情報もありました。<br />
■ <a href="http://nskw-style.com/2015/env/%E3%83%AD%E3%83%BC%E3%82%AB%E3%83%AB%E3%81%A7%E3%81%AE%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%AE%E7%A2%BA%E8%AA%8D%E3%81%8C%E3%81%A7%E3%81%8D%E3%82%8Bmailcatcher%E3%82%92mac%E3%81%A7%E4%BD%BF%E3%81%86.html">ローカルでのメールの確認ができるMailCatcherをMacで使う - Shinichi Nishikawa&apos;s</a>
</p>

<p>
<a href="http://mailcatcher.me/">MailCatcher</a> に感謝(-∧- )<br />

</p>]]>
    </content>
</entry>

<entry>
    <title>unserializeしてもエラーになったり読み込めない時はstripslashesを考慮</title>
    <link rel="alternate" type="text/html" href="http://www.materializing.net/archives/2010/11/11132336.php" />
    <link rel="service.edit" type="application/atom+xml" href="http://www.materializing.net/weblog/mt-atom.cgi/weblog/blog_id=1/entry_id=530" title="unserializeしてもエラーになったり読み込めない時はstripslashesを考慮" />
    <id>tag:www.materializing.net,2010://1.530</id>
    
    <published>2010-11-11T04:23:36Z</published>
    <updated>2011-02-08T20:42:19Z</updated>
    
    <summary> どうも。ご無沙汰です。。。いつもご無沙汰ですね。 さてさて、一応生きて元気に活動してます。 もろもろの事情により、勉強会とかなんらかの会合は行くことが出来ないでいますけど。 そんなもんだから勉強してます。PHPとか英語とか。もちろんJavaも。 勉強会と言え...</summary>
    <author>
        <name>arata</name>
        <uri>http://www.materializing.net/</uri>
    </author>
    
        <category term="phpに関するメモ" />
    
    <content type="html" xml:lang="ja" xml:base="http://www.materializing.net/">
        <![CDATA[<p>
どうも。ご無沙汰です。。。いつもご無沙汰ですね。<br />
さてさて、一応生きて元気に活動してます。<br />
もろもろの事情により、勉強会とかなんらかの会合は行くことが出来ないでいますけど。<br />
そんなもんだから勉強してます。PHPとか英語とか。もちろんJavaも。
</p>

<p>
勉強会と言えば、直前のお知らせになっちゃうんですけど、九州は宮崎にて勉強会が行われます。明日ですね。<br />
【日時　2010/11/12 17:00】<br />
■<a href="http://atnd.org/events/9669" title="MWW : ATND">MWW : ATND</a>
</p>

一部になりますけど企業紹介。。。
<ul>
	<li>EC-CUBEのことなら <a href="http://www.aratana.jp">株式会社アラタナ</a></li>
	<li>触るの楽しいBaserCMS <a href="http://www.e-catchup.jp/">キャッチアップ</a></li>
</ul>

<p>
あー・・・ほんと行きたかったなー。<br />
嘆いても仕方ないんで、遠くから会の成功を祈るばかりです。<br />
というか行ける方はほんと行くと良いんです。<br />
宮崎って遠くに感じますけど、遠いんですよ！違った。近いんですよ！
</p>

<p>
で、ようやくここから本題です。<br />
今回はPHP使ってて、Cookieをムシャムシャ食べてる最中に起きました。<br />
serializeで保存可能な形式に変換して、unserializeで戻して取り出すところなんですが。。。<br />
なぜか正しく戻らない。取り出せない。<br />
はてなにかおかしいのかな？と悩んでしまいました。
</p>

<p>
結論としては、serialize → stripslashes → unserialize で解決しました。<br />

</p>]]>
        <![CDATA[<h3>stripslashesを利用したら正しく読み込めた。</h3>

<p>
以下みたいな感じです。
</p>

<pre><code>if(isset ($_COOKIE['cookie_hoge']) == TRUE) {
&nbsp;&nbsp;&nbsp;&nbsp;var_dump($_COOKIE['cookie_hoge']);
&nbsp;&nbsp;&nbsp;&nbsp;// うまく行かなかった時
&nbsp;&nbsp;&nbsp;&nbsp;// $hoge = unserialize($_COOKIE['cookie_hoge']);

&nbsp;&nbsp;&nbsp;&nbsp;$hoge = stripslashes($_COOKIE['cookie_hoge']);
&nbsp;&nbsp;&nbsp;&nbsp;$data = unserialize($hoge);

&nbsp;&nbsp;&nbsp;&nbsp;var_dump($hoge);
}
</code></pre>

<p>
Cookie値を読み込むとエスケープ処理されているのかな？と。<br />
なので、アンエスケープ処理を行う stripslashes してみたら、ちゃんと普通状態に変換されました。
</p>

<h4>あとがき</h4>

<p>
まだまだ知識がアレなんで、こうやって小さなこと(自分にとっては大きかったですけど)が解決出来るだけでとても嬉しいです（＾ω＾）
</p>

<p>
Cookieを利用した「お気に入りリスト」みたいの作るのが当面の目標です。
</p>

<h4>追記：2011/02/09 05:43:09</h4>

<p>
-> 目標達成です。こちらのWebアプリで利用してみました。<br />
■<a href="http://www.materializing.net/archives/2011/02/06084415.php" title="ATND API＋CakePHPでイベント検索。｢気になるATND検索｣｜Materializing [マテリアライジング]">ATND API＋CakePHPでイベント検索。｢気になるATND検索｣</a>
</p>]]>
    </content>
</entry>

</feed>