Upgrade to Pro — share decks privately, control downloads, hide ads and more …

メールテンプレートどうしてますか?

 メールテンプレートどうしてますか?

PHPで作成されたサービスでメールを送信する際に、テンプレートをどう使いますかという話。

KOYAMA Tetsuji

September 29, 2014
Tweet

More Decks by KOYAMA Tetsuji

Other Decks in Programming

Transcript

  1. From: {{ mail_from }} Subject: ご登録ありがとうございます。 ! {{ username }}様

    ! このたびは、ほげサービスにご登録ありがとうござ います。 以下のURLをクリックして最終登録作業をして下さ い。 ! {{ confirm_url }} ! 今後ともほげサービスをよろしくお願いします。 ςϯϓϨʔτྫ
  2. From: “ほげサービスサポート” <[email protected]> Subject: ご登録ありがとうございます。 ! ぺちぱ太郎様 ! このたびは、ほげサービスにご登録ありがとうござ います。

    以下のURLをクリックして最終登録作業をして下さ い。 ! http://hoge.example.com/confirm/DqoGkxQi2fN ! 今後ともほげサービスをよろしくお願いします。 ม਺ల։ޙ
  3. // まず空行をチェック $headend = strpos($message, "\n\n"); if ($headend === false)

    { // 空行がなければいきなり本文 $this->headers = array(); $this->body = $message; return; } ࠷ॳͷۭߦ·Ͱ͸ϔομ
  4. $head = substr($message, 0, $headend); $body = substr($message, $headend +

    2); ! $checkempty = trim($body); if (empty($checkempty)) { // やはりヘッダなし $this->headers = array(); $this->body = $message; return; } ϔομͱຊจΛ෼͚Δ
  5. $heads = explode("\n", $head); ! $headers = array(); foreach ($heads

    as $header) { // divide by ':' list($h, $v) = explode(':', $header, 2); $h = strtolower(trim($h)); $v = trim($v); $headers[$h] = $v; } ! $this->headers = $headers; $this->body = $body; ֤ϔομʹ෼ׂ
  6. function render($template, $params) { extract($params); ! $code = 'return "'

    . addslashes($template) . '";'; $result = eval($code); return $result; } ௒؆қςϯϓϨʔτΤϯδϯ