[Laravel] 受信メールを取り込む

方針はシンプルで、標準入力に与えられたメールをパースするcommandを作成しておき、メールが着信するたびにそのcommandを呼び出すようにPostfixを設定する。Postfixの設定に関しては前回記事を参照

メールのパースにはphp-mine-mail-parserを使う。内部でmailparseを呼んでいるようなので、mailparseを予めインストールしておくこと。mailparseのインストールに関しては過去記事を参照

以下、Laravelのcommand実装サンプル。

参考サイト

受信したメールをLaravelで受け取る | Sukohi’s tech blog!!
http://sukohi.blogspot.com/2016/06/laravel.html

Setting up Postfix and pipe incoming emails to Laravel
https://sboersma.nl/blog/setting-up-postfix-and-pipe-incoming-emails-to-laravel

[Postfix] 有効なMTAを確認&切り替える

sendmailとpostfixが両方インストールされている場合など。

[Postfix] 受信したメールをPHPスクリプトで処理する

Postfixがすでに動作している前提。

これで設定完了。info@example.comにメールが着信すれば/tmp/readmail.phpが実行されればOK。

必要に応じてログを確認。

参考サイト

Postfixで受信したメールを別メールに転送する(エイリアス) | 本日も乙
http://blog.jicoman.info/2014/03/postfix_aliases/

ヴァーチャルドメイン(VirtualDomain)を利用して、複数ドメインの設定を行う | 本日も乙
http://blog.jicoman.info/2014/04/postfix_virtualdomain/

[Postfix] 受信したメールを別アドレスに転送する

受信したメールを別アドレスに転送するだけのメールサーバーをPostfixで立ててみる、

DNS設定

確認

Postfixのセットアップ

確認

これで設定完了。info@example.comにメールを送るとinfo@yourcompany.comに転送されればOK。

ファイヤーウォールでsmtpは通過するように設定しておくこと。

必要に応じてログを確認。

参考サイト

さくらVPSのバーチャルドメインでメール送受信
http://plusblog.jp/8842/

Postfixで受信したメールを別メールに転送する(エイリアス) | 本日も乙
http://blog.jicoman.info/2014/03/postfix_aliases/

ヴァーチャルドメイン(VirtualDomain)を利用して、複数ドメインの設定を行う | 本日も乙
http://blog.jicoman.info/2014/04/postfix_virtualdomain/

[PHP] mailparseをインストールする

mailparseはメールをパースするPHPエクステンション。

PECL :: Package :: mailparse
https://pecl.php.net/package/mailparse

PHP: Mailparse – Manual
http://php.net/manual/ja/book.mailparse.php

インストールに手間取ったので手順覚書。

PHP 5.6

PHP 7.1

普通にビルドしたら以下のエラーに直面。

参考サイトの手順を倣ってインストール成功。

参考サイト

php extension – Installing mailparse php7 mbstring error – Stack Overflow
http://stackoverflow.com/questions/35793216/installing-mailparse-php7-mbstring-error

how to instal mailparse on php7 · GitHub
https://gist.github.com/thelbouffi/118107b77f52f5a07eb840c3f2993509

[ホスティング] CentOSに開発ツールをインストールする

Ubuntuだと以下コマンドで開発ツールが入るけど

CentOSだとyumを使って以下のようにする。

参考サイト

Ubuntu の build-essentials 的なことを yum でやりたいときの方法 – tokuhirom’s blog
http://blog.64p.org/entry/2013/07/22/142457

[Git] 全てのサブフォルダにある.DS_Storeを除外するには

プロジェクトのホームに置いた .gitignore に以下を追加。

参考サイト

[Git] .gitignoreの仕様詳解 – Qiita
http://qiita.com/anqooqie/items/110957797b3d5280c44f

.gitignore all the .DS_Store files in every folder and subfolder – Stack Overflow
http://stackoverflow.com/questions/18393498/gitignore-all-the-ds-store-files-in-every-folder-and-subfolder/38797342

[PHP] SQLの古いエスケープ関数は使わないように

古いコードを新しいPHPで動かすときの注意。

mysql_escape_string

PHP: mysql_escape_string – Manual
http://php.net/manual/ja/function.mysql-escape-string.php

警告
この関数は PHP 4.3.0 で非推奨になり、PHP 7.0.0 で MySQL 拡張モジュール 全体とあわせて削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は MySQL: API の選択 や それに関連する FAQ を参照ください。 この関数の代替として、これらが使えます。
– mysqli_escape_string()
– PDO::quote()

mysql_real_escape_string

PHP: mysql_real_escape_string – Manual
http://php.net/manual/ja/function.mysql-real-escape-string.php

警告
この拡張モジュールは PHP 5.5.0 で非推奨になり、PHP 7.0.0 で削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は MySQL: API の選択 や それに関連する FAQ を参照ください。 この関数の代替として、これらが使えます。
– mysqli_real_escape_string()
– PDO::quote()

参考サイト

PHP: PDO – Manual
http://php.net/manual/ja/book.pdo.php

PHP: PDO::quote – Manual
http://php.net/manual/ja/pdo.quote.php

[PHP] タイムゾーン設定は必須 (PHP 5.1.0以降)

古いコードを新しいバージョンのPHPで動かそうとしたら動かない。ログを見たらタイムゾーンが設定されていないというエラーを吐きまくっていた。

フレームワークベースの開発だと、フレームワークが良きに計らってくれるから気にする必要はないけど、スクラッチからのコーディングでは忘れずにデフォルトタイムゾーンを設定すること。もはや必須と思っておこう。

参考サイト

PHP: date_default_timezone_set – Manual
http://php.net/manual/ja/function.date-default-timezone-set.php

注意:
PHP 5.1.0 以降(日付/時刻 関数が書き直されてから)、タイムゾーンを 正しく設定せずに日付/時刻関数をコールすると E_NOTICE が発生し、またシステムの設定や TZ 環境変数を 使用すると E_WARNING が発生するようになりました。

[ソフト] AG-デスクトップレコーダー – 画面をキャプチャして動画ファイルを作成

あるウェブサイトに埋め込まれているアニメーションを別サイトに転載してほしいとの依頼あり。アニメーションは複数のグラフィックス素材をJavaScriptでオーバーレイさせて動かしている。複数のJSファイルが連携して動作しているようなので、過不足なく転載するのはちょっと手間だな。というわけで、アニメーションをキャプチャしてGIFアニメに変換してアップする方針を決める。

まずブラウザ画面を動画キャプチャ。

PC画面を動画キャプチャする高機能インストール不要フリーソフト「AGデスクトップレコーダー」 | Tipstour
http://tipstour.net/free-soft/10933

不要部分をトリミング。

MP4(MPEG-4)ビデオをトリミング/カットする方法 (Filmora超高速動画カッター)
https://www.wondershare.jp/howtoedit/trim-mp4.html

GIFアニメに変換。

MP4 GIF 変換。オンライン フリー — Convertio
https://convertio.co/ja/mp4-gif/

出来たGIFアニメを転載先ウェブサイトに埋め込んで完了。