CVをフォトフレームにメールするスクリプト「コンバージョンメーラー」

コンバージョンをフォトフレームにお届け!

以前、GoogleアナリティクスAPIから数値を取ってきて自動でメールさせるスクリプトを公開しましたが、今回はそれを更に強化して、フォトフレームに届くようにしました。

環境や必要となるライブラリ

◆ライブラリ
class.phpmailer.php (メール送信)
googleanalytics.class.php (GoogleアナリティクスAPI)
※参考 GAPI – Google Analytics API PHP Interface
・GD (PHPによる画像修正)

◆環境
・PHP
・CRON (自動実行)
・フォント (画像合成時に変換される)
※宜しければカグア!作成のTA微妙体(プロポーショナル)をご利用下さい。GPLで公開中です。

◆画像サイズ
・800×480
・画像は複数でもいいでしょうし、固定で決めるのも良いかと思います。改造すればヤフーの画像検索などで持ってこれるとも思います。

スクリプト

ソースはこれだけです。MITライセンスとしますので、どうぞお使い下さい。応用すればHTMLメールにしたり、Yahoo!画像検索APIと絡めれば好きなアーチスト画像が毎日届くなども出来たりすると思います。

<?php

// 日付生成
$today = date(“Ymd”);
$ff1 = $today .”.jpg”;
$today = date(‘Y-m-d’);

//画像名は任意

$img = ImageCreateFromJPEG(‘./画像ファイル名’);

//ライブラリ読込
include(‘googleanalytics.class.php’);

try {

//アカウント
$ga = new GoogleAnalytics(‘ログインID’,’パスワード’);
$ga->setProfile(‘ga:プロファイル番号’);

//日付
$gatoday = mktime(0, 0, 0, date(“m”), date(“d”)-1, date(“Y”));
$five = mktime(0, 0, 0, date(“m”), date(“d”)-3, date(“Y”));
$g1 = date(“Y-m-d”, $gatoday);
$g2 = date(“Y-m-d”, $five);
$ga->setDateRange($g2,$g1);

//Google Analytics 読込(a)
$report = $ga->getReport(
array(‘dimensions’=>urlencode(‘ga:date’),
‘metrics’=>urlencode(‘ga:goal1Completions’),
‘sort’=>’ga:date’
)
);

//PVなど数値取得
$i = 0;
$j = 0;
$games = “”;
foreach( $report as $date => $dimensions ){
$dd[$i] = $date;
$i++;
foreach( $dimensions as $metrics){
$mm[$j] = $metrics;
$j++;
}
}

//メッセージ表示
$games1 = “CVだけど・・、\n昨日は”.$mm[2].”件!\n”;
$games2 = “一昨日は”.$mm[1].”件\n”;
$games3 = “その前は”.$mm[0].”件\n”;
$games = $games1.$games2.$games3;

} catch (Exception $e) {
print ‘Error: ‘ . $e->getMessage();
}

// 必要に応じてUTF-8へ変換(環境依存)
$tt = $games;
$text = mb_convert_encoding($tt, ‘EUC-JP’, ‘auto’);

// 文字を黒で表示
$black = ImageColorAllocate($img, 0x00, 0x00, 0x00);

ImageTTFText($img, 58, 0, 50, 120,$black, ‘./tabimyou_add_p.TTF’, $today);
ImageTTFText($img, 36, 0, 50, 210,$black, ‘./tabimyou_add_p.TTF’, $text);

// 画像を $ff1 として保存します
imagejpeg($img,$ff1);

// メモリを開放します
imagedestroy($img);

//ライブラリ読み込み
require(“./PHPMailer/class.phpmailer.php”);

//言語設定、内部エンコーディングを指定する
mb_language(“japanese”);
mb_internal_encoding(“EUC-JP”);

//日本語添付メールを送る
$to = “フォトフレームのメール”; //宛先
$subject = $today.”タイトル”; //題名
$body = “本文”.$ff1; //本文
$from = “差出人のメール”; //差出人
$fromname = “差出人名”; //差し出し人名
$attachfile = $ff1 ; //添付ファイルパス
$mail = new PHPMailer();
$mail->CharSet = “iso-2022-jp”;
$mail->Encoding = “7bit”;
$mail->AddAddress($to);
$mail->From = $from;
$mail->FromName = mb_encode_mimeheader(mb_convert_encoding($fromname,”JIS”,”EUC-JP”));
$mail->Subject = mb_encode_mimeheader(mb_convert_encoding($subject,”JIS”,”EUC-JP”));
$mail->Body = mb_convert_encoding($body,”JIS”,”EUC-JP”);

//添付ファイル追加
$mail->AddAttachment($attachfile);
if (!$mail->Send()){
echo(“メールが送信できませんでした。エラー:”.$mail->ErrorInfo);
}

?>

参考URL

Geekなぺーじ:UstreamのテロップをPHP GDで自動生成する方法
PHPで日本語メールを送る – 応用編 (添付ファイル、HTMLメール) – EC studio 技術ブログ
PHPMailer – PHP言語でメール送信ライブラリ – オープンソースコラム
PHP: GD – Manual
Data Export API – 一般的なクエリ – Google アナリティクス – Google Code
PHPMailer を使ってのメール送信の文字化けについて – PHPプロ!Q&A掲示板
HTMLメールで画像を埋め込むphpmailerのにいただきました!正しい方法?
Yahoo!デベロッパーネットワーク – 検索 – 画像検索
 

よくわかるPHPの教科書
よくわかるPHPの教科書

posted with amazlet at 11.10.28
たにぐち まこと
毎日コミュニケーションズ
売り上げランキング: 1587