2010-03-10
Qdsmtpを使ってGmailを送信する
CakePHP |
Web上で問い合わせフォームを実装する場合、CakePHPならばQdmailを使う人が多いと思います。
ただ、Qdmailってphp.iniのSMTPの値を使用するんですよね。なので、QdmailをラップするQdsmtpを使ってみようと思ったのですが、GmailをSMTPサーバーに設定する際にちょっとハマりました。以下Qdsmtpの導入手順です。
1.Qdmail・Qdsmtpを取得
2009/03/10現在、Qdmailの最新バージョンは1.2.6b、Qdsmtpの最新バージョンは0.2.0aみたいです。
2.コンポーネントフォルダに配置
以下のフォルダに置いてください。とくにすることはありません(すげー)。
- app/controllers/components
3.controllerで呼ぶ
使用するcontrollerで以下のように記述して下さい。というか、ほぼQdsmtpのサイトにある通りです(すげー)。
<?php class QuestionsController extends AppController { var $name = 'Questions'; var $helpers = array('Html', 'Form'); // QdmailがQdsmtpを探すので、Qdsmtpを指定する必要はない var $components = array('Qdmail'); function send() { // SMTPの設定値 $param = array( 'host'=>'ssl://smtp.gmail.com', 'port'=>'465', 'from'=>'address@gmail.com', 'user'=>'address@gmail.com', 'pass' => 'password', 'protocol'=>'SMTP_AUTH', ); $this->Qdmail->to('to_address@example.com'); $this->Qdmail->subject('テスト'); $this->Qdmail->from('address@gmail.com'); // Qdsmtpを使用する場合は記述 $this->Qdmail->smtp(true); $this->Qdmail->smtpServer($param); $this->Qdmail -> cakeHtml('本文'); $this->Qdmail->send(); } } ?>
ここで注意するのが、$paramのhostにssl://smtp.gmail.comもしくはtls://smtp.gmail.comと記述することです。GmailはSMTPサーバーにSSL/TLSを使用する必要があるので、それを指定しなければいけません。またuserは@gmail.comを含めて記述してください。
http://mail.google.com/support/bin/answer.py?hl=jp&answer=44793
4.php.iniの設定変更
そのまま送信するとunable to connect to ssl://smtp.gmail.com:465みたいなエラーになると思います。SSLで接続できないよ~ってことなんでしょうが、PHPでOpenSSLを有効にすればうまくいきます。以下のフォルダにあるphp.iniのextension=php_openssl.dllのコメントを外してください。
わーいハマったけど送信できました\(^o^)/
- 1 http://74.125.153.132/search?q=cache:EvFCILksOdoJ:netshopkaigyou.com/t/ec-cube+ECCUBE+ PHP+ドロップシッピング カート&cd=10&hl=ja&ct=clnk&gl=jp&client=firef
- 1 http://d.hatena.ne.jp/keyword/CakePHP
- 1 http://d.hatena.ne.jp/keyword/SMTP
- 1 http://reader.livedoor.com/reader/
- 1 http://search.yahoo.co.jp/search?p=font-family ec-cube&ei=UTF-8&fr=top_ga1_sa&x=wrt
- 1 http://www.google.co.jp/search?hl=ja&client=firefox-a&hs=GQf&rls=org.mozilla:ja:official&q=ec+cube+全商品 カテゴリ トップページ&btnG=検%E
- 1 http://www.google.co.jp/search?hl=ja&rlz=1C1GGLS_jaJP352JP352&q=eccube++top編集&btnG=検索&lr=&aq=f&oq=
- 1 http://www.google.co.jp/search?hl=ja&rlz=1C1GGLS_jaJP365JP370&q=eccube ヘッダー 画像 変更&btnG=検索&lr=&aq=f&oq=
- 1 http://www.google.co.jp/search?q=EC-CUBE+dtb_baseinfo&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&hl=ja&client=firefox-a
- 1 http://www17.atpages.jp/planeteccube/2010/01/22/page/2