Tips
2011年9月6日 9:37 PM
まず、さくらインターネットサーバーで以下の2点は完了しておいて下さい。
以前僕がブログ内で書いたものです。
- 【PEAR】さくらインターネットサーバーでPEARを使う
- 【空メール】さくらインターネットで、空メールからPHPプログラムを実行する。
- 【PEAR】さくらサーバーで、画像添付メールの画像をプログラムで取り出す。
2番で用意したPHPファイルに記述します。
1番で行ったPEARのインストール場所で記述しています。
文字エンコードは、UTF-8で書いています。
画像を保存したりしたい方は、3番を参照して下さい。
添付画像なしで、送信者アドレスと件名、本文を取得したい方のみの記述です。
多少軽くなるので、画像が必要の無い方はこちらで。
取得したメールアドレスや件名は、データーベースに登録するなり、テキストファイルに保存するなり、メールで送りなりして下さい。
————–ここから—————–
#!/usr/local/bin/php
<?php
//PEARのパスを設定
$path = ‘/home/(ユーザー名)/pear/PEAR/’;
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once ‘/home/(ユーザー名)/pear/PEAR/Mail/mimeDecode.php’;
//受信メールから読み込み
$params[‘include_bodies’] = true;
$params[‘decode_bodies’] = true;
$params[‘decode_headers’] = true;
$params[‘input’] = file_get_contents(“php://stdin”);
$params[‘crlf’] = “\r\n”;
if (!$params[‘input’]) {
// 読み込み失敗
exit();
}
$structure = Mail_mimeDecode::decode($params);
//送信者のメールアドレスを抽出
$mail = $structure->headers[‘from’];
$mail = addslashes($mail);
$mail = str_replace(‘”‘,”,$mail);
$mail = preg_replace(‘/(^.*<|>$)/’, ”, $mail);
// 件名を取得
$subject = $structure->headers[‘subject’];
switch (strtolower($structure->ctype_primary)) {
case “text”:
$body = $structure->body;
break;
default:
$body = “”;
}
?>
————–ここまで—————–
詳細などは、【PEAR】さくらサーバーで、画像添付メールの画像をプログラムで取り出す。を参照して下さいね。
内容は画像保存以外、同じですので。
カテゴリー:PHP, Tips, さくらインターネット :
コメント(0)
2011年9月6日 9:25 PM
まず、さくらインターネットサーバーで以下の2点は完了しておいて下さい。
以前僕がブログ内で書いたものです。
- 【PEAR】さくらインターネットサーバーでPEARを使う
- 【空メール】さくらインターネットで、空メールからPHPプログラムを実行する。
2番で用意したPHPファイルに記述します。
1番で行ったPEARのインストール場所で記述しています。
文字エンコードは、UTF-8で書いています。
————–ここから—————–
#!/usr/local/bin/php //←さくらサーバーはこの記述
<?php
//PEARのパスを設定
$path = ‘/home/(ユーザー名)/pear/PEAR/’;
set_include_path(get_include_path() . PATH_SEPARATOR . $path);
require_once ‘/home/(ユーザー名)/pear/PEAR/Mail/mimeDecode.php’;
//受信メールから読み込み
$params[‘include_bodies’] = true;
$params[‘decode_bodies’] = true;
$params[‘decode_headers’] = true;
$params[‘input’] = file_get_contents(“php://stdin”);
$params[‘crlf’] = “\r\n”; //Shift_JISで記述する場合は、\を¥で。
if (!$params[‘input’]) {
// 読み込み失敗
exit();
}
$structure = Mail_mimeDecode::decode($params);
//送信者のメールアドレスを抽出
$mail = $structure->headers[‘from’];
$mail = addslashes($mail);
$mail = str_replace(‘”‘,”,$mail);
$mail = preg_replace(‘/(^.*<|>$)/’, ”, $mail);
// 件名を取得
$subject = $structure->headers[‘subject’];
// 本文、添付ファイル(画像)を抽出
switch (strtolower($structure->ctype_primary)) {
case “text”:
// シングルパート(テキストのみ)
$body = $structure->body;
break;
case “multipart”:
// マルチパート(画像付き)
foreach ($structure->parts as $part) {
switch (strtolower($part->ctype_primary)) {
case “text”:
$body = $part->body;
break;
case “image”:
// 画像の拡張子を取得する
$type = strtolower($part->ctype_secondary);
// 添付ファイル保存
$photo = “sample”.$type;
$tmpName = ‘/home/(ユーザー名)/www/dir/’ . $photo; //画像の保存場所です。
//↑必ずサーバーパスで記述します。./dir/などの相対パスでは駄目です。
今回は、サンプルで画像名は、sampleにしています。
if ($fp = fopen($tmpName, “w”)) {
$length = strlen($part->body);
fwrite($fp, $part->body, $length);
fclose($fp);
}
break;
}
}
break;
default:
$body = “”;
}
?>
————–ここまで—————–
保存する「dir」ディレクトリは、権限を777にして下さいね。
エラーや保存できない理由の多くは、ディレクトリの権限です。
/home/(ユーザー名)/pear/PEAR/ さくらはこれがサーバーパスです。
ちなみに、Drive Networkは、/home/(ユーザー番号)/(ドメイン)/(保存ディレクトリ)/pear/PEAR/です。
件名は、$subject
本文は、$bodyで取得できます。
送信者メールアドレスは、$mailで取れます。
取得したメールアドレスや件名は、データーベースに登録するなり、テキストファイルに保存するなり、メールで送りなりして下さい。
カテゴリー:PHP, Tips, さくらインターネット :
コメント(1)
2011年9月4日 11:37 AM
Mac OSXのコードネームは猫科の動物の名前がついていて格好いいけど、結構忘れちゃうのでメモ。
Mac OS X 10.0 Cheetah(チーター)
Mac OS X 10.1 Puma(プーマ)
Mac OS X 10.2 Jaguar(ジャガー)
Mac OS X 10.3 Panther(パンサー)
Mac OS X 10.4 Tiger(タイガー)
Mac OS X 10.5 Leopard(レパード)
Mac OS X 10.6 Snow Leopard(スノーレパード)
Mac OS X 10.7 Lion(ライオン)
カテゴリー:Mac, Tips :
コメント(0)
2011年9月1日 8:29 PM
最近は、通常のホームページでもiPhoneやiPadで見る人が多いので、
最低でも崩れないようにはiPhoneで見せたい。
例え、iPhone用にホームページを作っていなくてもだ。
ヘッダーに以下の2行を入れれば、とりあえず文字が大きすぎたり、小さすぎたり、ボックスがずれたりと言うことは解消される。
<meta name=”apple-mobile-web-app-capable” content=”yes” />
<meta name=”viewport” content=”minimum-scale=0.25, maximum-scale=1.0, width=device-width, user-scalable=yes” />
あとは、vieportの説明を追加しておきます。
上記は、拡大率0.25〜1.0に設定。ユーザーに拡大縮小を許可にしてあります。
<meta name = “viewport” content = “width = device-width, initial-scale = 1, user-scalable = yes”>
だと、画面はiPhoneの横幅に合わせて、初期の拡大率が1で、ユーザーに拡大縮小を許可という事です。
width |
デバイスの横幅 |
980px |
device-width(iPhoneの横幅に合わせる)
device-height(iPhoneの縦幅に合わせる) |
height |
デバイスの縦幅 |
|
device-width(iPhoneの横幅に合わせる)
device-height(iPhoneの縦幅に合わせる) |
initial-scale |
ページが最初に読み込まれた時の拡大率 |
1 |
minimum-scale と maximum-scaleの範囲に準ずる |
user-scalable |
ユーザーに拡大縮小を許可 |
yes |
yes か no |
minimum-scale |
拡大率の下限 |
0.25 |
0 から 10 |
maximum-scale |
拡大率の上限 |
1.6 |
0 から 10 |
※iPad、Androidも同様。
カテゴリー:iPhone, Tips :
コメント(0)
2011年9月1日 7:11 PM
さくらサーバーは、PEARのインストール方法が簡単にできるとの事で選んだ部分もあるのだが。
ただ、簡単とはいえ、インストール後に、必要なパッケージもインストールしないといけないので、間違えないようにメモ。
まず、go-pear.txt を保存して下さい。拡張子は.phpに変更して下さい。
さくらサーバーの場合は、FTPで接続し、www/以下にgo-pear.phpをアップロードして下さい。
wwwディレクトリと同じ場所に、「pear」とディレクトリを作っておきます。
※FTPで見ると、go-pear.phpをアップしたディレクトリの一つ上です。
ブラウザで、「http://(ドメイン名)/go-pear.php」にアクセスします。
ページ下の「NEXT」を押します。
次画面は以下のように入力します。1番の項目を「/home/(自分のアカウント)/www」に。
10番を「/home/(自分のアカウント)/www/go-pear-admin.php」に。
11番を「/usr/local/bin/php」に。
後は設定せずに、「install」ボタンを押す。
インストールが終われば、www以下に、「go-pear-admin.php」が出来ているはずです。
エディターで開いて、8行目の「$pear_dir = ‘@pear_dir@’; // default of install」の部分を、
「$pear_dir = ‘/home/(アカウント名)/pear/PEAR’; // default of install 」に変更し保存。
ブラウザで、「http://(ドメイン名)/go-pear-admin.php」にアクセスします。すると下記画面に。
一番下の「Quick-Install a package」に、必要なパッケージ名を入力し、クイックインストール。
画像を添付したメールを自動で文章や件名、画像と分解して、
MySQLやサーバー内に画像を保存するのには、以下のパッケージ名を入力すれば大丈夫でした。
画像分解などのやり方はまた今度。
※画面上部のWarningは、他者にアクセスされると困るので、パスワードを付けてとのアラート。
【インストールしたパッケージ】
- Mail
- Mail_Mime
- Mail_MimeDecode
最後に、さくらコントロールパネルにアクセスし、サーバツールの設定→PHP言語に関する設定→php.ini設定ファイル編集で
「include_path=”.:/home/(アカウント名)/pear/PEAR”」 の一行を追加し終了です。
カテゴリー:PHP, Tips, さくらインターネット :
コメント(4)
2011年8月19日 12:26 AM
iPhone用のサイトではなくても、携帯用サイトをiPhone用として表示してるサイトも多いです。
ただ、その場合、横幅が合わなく、標準ではとても画面が小さく表示されてしまいます。
横幅をiPhone用に合わせたい場合は、以下の一行をヘッダーに追加します。
もちろん、Androidもこれで対応できます。
<meta name=”viewport” content=”width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0″ />
width
には表示領域を指定することができます。直接数字を「width=980」のように入力するか、device-widthと指定します。
device-widthにすれば「portrait(縦モード)」「landscape(横モード)」問わず、横幅320pxになります。
initial-scale
は初期表示の倍率です。
例えばinitial-scale=2.0
とした場合、width
が320pxであれば、2倍にズームされた状態になるので、画面には横幅160pxの内容が表示されることになります。
user-scalable
はユーザーによる拡大・縮小の操作を強化するかどうかです。
値はyesかnoかいずれかの指定になります。
maximum-scale
は拡大を許可した場合の最大倍率となります。
基本的にはiPhone向けにちょうどいいサイト幅で閲覧できるようwidth=device-width
のみ指定すると良い。
<meta name=”viewport” content=”width=device-width” />
カテゴリー:iPhone, Tips :
コメント(0)
2011年8月19日 12:17 AM
iPhone対応のサイトじゃなくても、普通のHTMLでサイトを作ってて、
iPhoneやiPadで見たら、リンクを設定していない電話番号のテキストや数字、2011/11/11などの日付など自動的に「tel:」が付き、リンク表示にはなるし、クリックすると電話をかけるダイアログが出てくる。
これはあまりにも駄目ですよね。
通常のサイトをiPhoneやiPadで見るのも多くなってきてる現在、1行ヘッダーに追加するだけで対処できます。
ヘッダー内に
<meta name=”format-detection” content=”telephone=no”>
この一行を入れるだけです。
これは通常のHTMLを記述する際にも、入れておいた方がいいのではないでしょうか。
カテゴリー:iPhone, Tips :
コメント(0)
2011年8月18日 12:56 PM
さくらインターネットで、空メールからPHPプログラムを実行するやり方をメモ。
メールの着信をトリガーにしてPHPプログラムを起動する方法です。
- サクラコントロールパネルで、空メールにしたいメールアドレスを新規で作成する。例) test@test.com
- 作成したメールアドレスにメール転送設定を行う。すぐに消去するので、転送するアドレスは何でもいい。設定したら、すぐに転送設定を消去する。
- FTPでサーバーに接続し、「/home/ユーザー名/MailBox/test/」の「.mailfilter」にこの後の内容を入力する。最初は何も書いていないファイルです。もし、このファイルが存在しなかったら、「.mailfilter」のファイルを新規で作ります。
- 「.mailfilter」の中身を以下のようにする。cc “| /home/ユーザー名/www/test.php”
※サーバーによって変わるので、ご自身のサーバーのドキュメントルートを記述して下さい。
通常さくらは、/home/ユーザー名/www/です。
ユーザー名は、さくらインターネットの契約時に決められた名称を入れてください。
CCの後、|の後には半角スペースが入るので注意してください。
- 「.mailfilter」は、パーミッション(属性)を600に変更してする。
これで、メールを受信したら自動的に、/home/ユーザー名/www/test.phpのPHPプログラムが実行されることになる。
- 実行させるPHPプログラムには、空メールで受け取った際に実行したいコードを記述します。
一行目には必ず、「#!/usr/local/bin/php」 を入れる。
あとは、通常のPHPを書くのと同じです。ただ、ファイルを保存したりする保存場所は、間接指定「../」や直接指定「http://www〜」は使用せずに、サーバードキュメントルート「 /home/ユーザー名/www/」で指定してください。
- 実行させるPHPは、パーミッション(属性)を744に変更してする。
- 以上
これで、空メールがきたら、自動的に指定のプログラムが起動する事となります。
上記、【4】での【CC】の部分ですが、空メールをメールソフトでも受信したい場合は、【CC】にします。
ただ、【CC】だと空メールがくるたびに、メールソフトで受信しないと溜まっていきます。
メールソフトで受信せずに、プログラムを実行させるだけなら、【to】 を使います。
うまくプログラムを記述すれば、データーベースに登録したり、PEARを使えば、メールに添付された画像を取り込む事ができます。
カテゴリー:Tips, さくらインターネット :
コメント(2)
2011年8月18日 12:25 PM
弊社で今後使うために取得した日本語ドメインの設定方法をメモ。
さくらサーバーとお名前.comを使った設定方法です。
色々とサイトを確認していると先に、さくらインターネットを設定しないと動作しないとの事。
なので、間違えないように先にさくらを設定します。
弊社の日本語ドメインも設定済みです。エクスプロード.jp
さくらインターネットでの設定
- 日本語ドメインを取得し、Punycodeに変換する。→こちらで変換できます。
- FTP で、/home/ユーザ名/www の直下に、あらかじめこのドメインが使うフォルダを作成する。
さくらインターネットはマルチドメインなのでこのように設定する。
- サーバ コントロール パネルにログインする。
- サーバ情報の表示 → サーバに関する情報を確認し、IP アドレスをメモっておく。111.11.111.11など
- ドメイン設定 → 新しいドメインの追加 → 【5. 他社で取得したドメインを移管せずに使う・属性型JPドメインを使う(さくら管理も含む)】を選択する。
- 【他社で取得された独自ドメインのサブドメインを追加】のところに、追加したいドメイン名を Punycode 形式で入力して送信する。
- 次の画面でマルチドメインを設定する。
設定:「www」を付けずに運用したい場合は、「wwwを付与せずマルチドメインとして使用する(上級者向け)」を選択する。
対象フォルダ:先程、/home/ユーザ名/www直下に作成したフォルダを指定する。
送信して完了。
お名前.comでの設定
- ドメイン Navi にログインし、ドメインの設定画面に移動する。
- レンタル DNS レコード設定 →入力画面に進む。
- ホスト名:Punycode 形式で記載する。(.jpや.comまで入力)
- TYPE:A
- VALUE:さくらコントロールパネルでメモした IP アドレスを入力。111.11.111.11など
- 追加して、設定内容を確定する。
- 「ドメイン設定」メニューから「ネームサーバー変更」をクリックします。
- 「ネームサーバー変更」画面で、変更したい日本語ドメイン(複数選択可)を選択し、「他のネームサーバーを利用」を選択。
- プライマリ:ns1.dns.ne.jp、セカンダリ:ns2.dns.ne.jp を入力し、確認画面へ進む→設定で完了。
※さくらインターネットのネームサーバーを入力します。画面では、お名前.comのプライマリ:01.dnsv.jp、セカンダリ:02.dnsv.jpを設定してと出るが間違いないように。
- DNSを設定後、切り替え作業に入ります。早ければ30分くらいで変更されますが、最高72時間かかります。
カテゴリー:Tips, サーバー, さくらインターネット :
コメント(1)
2011年8月15日 7:18 PM
データーベースを使用していると結構使う「phpMyAdmin」ですが、バージョンの変更が多く、一つ前のバージョンだと設定方法も違うので、とりあえずメモ。
今現在、ダウンロードできるphpMyAdmin3.0を説明します。
phpmyadmin.net からダウンロード
解凍ソフトで、解凍したら、フォルダ名をサーバー上で分かりやすい名称に変えます。「phpmyadmin」とか「myadmin」とか。
FTPでアップロードします。
※今回は、www.test.comの直下に「myadmin」でアップしたという事にしました。
確か、バージョン2系は、ブラウザでTOPページにアクセスすれば設定が出来たのだが、
バージョン3から出来なくなってるっぽいので、手動で設定します。
「myadmin\config.sample.inc.php」をコピーして、「config.inc.php」に名前を変更
以下を修正
17行目あたり
$cfg[‘blowfish_secret’] = ‘test’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
29行目あたり
$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;
他には、「config」「http」など
「config」にして、ユーザー名とパスワードを設定しなければ、誰でもアクセスできる認証になる。超危ないけど。
$cfg[‘Servers’][$i][‘host’] = ‘localhost’;
普通は「localhost」でいいが、サーバーによって「server5.xxx.jp」などになる所もある。
$cfg[‘Servers’][$i][‘extension’] = ‘mysql’;
43行目あたり //でコメント化されてますので、使用する場合は「//」を取る。
$cfg[‘Servers’][$i][‘controluser’] = ‘MySQLのユーザ名’;
$cfg[‘Servers’][$i][‘controlpass’] = ”MySQLのパスワード;
今回の例での「myadmin」ディレクトリは、ベーシック認証かIP制限などした方が絶対にいいですよ。
IP制限はエクスプロード・ラボでも提供中。
ベーシック認証はエクスプロード・ラボでも提供中。
カテゴリー:MySQL :
コメント(0)
« 古い記事
新しい記事 »