2013年07月11日

FuelPHPでメール送信

もともとあるWelcomeページにWelcomeメール送信機能を付けてみます。
※ついでにコントロールクラスとメソッドの例

D:\fuel1\fuel\app\classes\controller\sendmail.php を作成



<?php
class Controller_Sendmail extends Controller
{
public function action_index()
{
Package::load('email');
$email = Email::forge();

$email->from('hoge@hoge', 'カナ');
$email->to('hoge@hoge');
$email->subject('カナ');
$email->body('カナ');

try {
$email->send();
}
catch (Exception $e) {
$err_msg = '送信に失敗しました。('.$e->getMessage().')';
}

return Response::forge(View::forge('welcome/index'));
}
}


ブラウザで"localhost/f1/sendmail/"へアクセス

半角カナも特殊文字も文字化けせずに受信できました!

つぎに本文を外部ファイル化してみます。

D:\fuel1\fuel\app\views\welcome\mail.php を作成


ようこそ!<?php echo $name; ?>様



D:\fuel1\fuel\app\classes\controller\sendmail.php を修正


<?php
class Controller_Sendmail extends Controller
{
public function action_index()
{
Package::load('email');
$email = Email::forge();

$email->from('orsum1999@yahoo.co.jp', 'カナ');
$email->to('m@62o.net');
$email->subject('カナ');
$data['name'] = 'カナ肝゙ン'; 
$body = View::forge('welcome/mail', $data);
$email->body($body);

try {
$email->send();
}
catch (Exception $e) {
$err_msg = '送信に失敗しました。('.$e->getMessage().')';
}

return Response::forge(View::forge('welcome/index'));
}
}


簡単です^^

posted by ろく at 14:39| Comment(0) | 日記

FuelPHPをWindows8へインストール

gitから取得する方法もあるようですが、今回はダウンロード版(ver1.6.1)でインストールします。

fuelphp_dl.png

適切なフォルダに展開します。今回は"D:\fuel1"にしました。

D:/fuel1/
├─docs
├─fuel
└─public

apacheのhttpd.confを修正し、エイリアス(/f1/)を設定します。

<IfModule alias_module>
(省略)

Alias /f1/ "D:/fuel1/public/"
<Directory "D:/fuel1/public">
AllowOverride All
Allow from all
</Directory>

(省略)
</IfModule>

apacheを起動し、"localhost/f1/"へアクセスしてみます。

fuelphp_err1.png


コンポーザーでupdateしてね!って言われます。
※gitをインストールしていない場合、コンポーザーが実行できないのでmsysitをインストールしてください。

Git Bashでインストールフォルダへ移動し"php composer.phar update"コマンドを実行します。
※コマンドプロンプトでもおk

runtimeエラーが出ました。(フォルダが違うのは気にしないで!)

fuelphp_err2.png

opensslが必要みたいです。"php.ini"を修正して有効にします。

;extension=php_openssl.dll
※;を削除し有効にする

再度実行

fuelphp_update.png

うまくいきました!
"localhost/f1/"へアクセスしてみます。

fuelphp_welcome.png

こちらもおk!
つづいてこんにちわ!

fuelphp_err3.png

(´・ω・`)
確かにそんなURLないですね。
"D:\fuel1\public\.htaccess"を確認してみます。

# NOTICE: If you get a 404 play with combinations of the following commented out lines
#AllowOverride All
#RewriteBase /wherever/fuel/is

RewriteBaseを設定します。

RewriteBase /f1/

F5!
fuelphp_hello.png

fuelphp_hello_logic.png

とりあえず準備おkかな!

タグ:FuelPHP
posted by ろく at 11:40| Comment(0) | 日記

2013年07月10日

PHPで半角カナを含んだメール送信

本文・件名・差出人に半角カナや鞄凾ェ含まれる場合、文字化けしやすいですが、以下のロジックならうまくいく。たぶん。

function sendMail($mailto, $sub, $msg, $from_email, $from_name)
{
mb_language("ja");
mb_internal_encoding("UTF-8");

$msg = mb_convert_encoding($msg,'ISO-2022-JP-MS');
$sub = mb_encode_mimeheader($sub,'ISO-2022-JP-MS');
$from = "From:".mb_encode_mimeheader($from_name,'ISO-2022-JP-MS')."<".$from_email.">";

return mail($mailto,$sub,$msg,$from);
}
タグ:PHP
posted by ろく at 20:44| Comment(0) | 日記