Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
メールテンプレートどうしてますか?
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
KOYAMA Tetsuji
September 29, 2014
Programming
290
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
メールテンプレートどうしてますか?
PHPで作成されたサービスでメールを送信する際に、テンプレートをどう使いますかという話。
KOYAMA Tetsuji
September 29, 2014
More Decks by KOYAMA Tetsuji
See All by KOYAMA Tetsuji
PIE (PHP Installer for Extensions) をみんなで試そう/piseka-pie
koyhoge
0
120
君はPostScriptなウィンドウシステム 「NeWS」をご存知か?/sunnews
koyhoge
0
1k
全日本PHPカンファレンス2024スタンプラリーについて/stamprally-php2024
koyhoge
0
200
日本PHPカンファレンス2024スタンプラリーとその実装/phpcon-stamprally
koyhoge
1
2.4k
日本のPHPカンファレンスの歩みと、その辺もろもろ/phpcon_japan_history
koyhoge
0
340
Inside SWOOLE: 非同期処理はどのようにして動くのか/inside_swoole
koyhoge
0
19k
映画を年300本観る技術/watch_300_movies_in_a_year
koyhoge
0
1.3k
Swooleで実装するPHP非同期処理の世界/phpcondo2019-swoole
koyhoge
3
5.9k
CloudFormation と FaaS のはざま - Kubernetes の設計思想を探る -/cf-faas-k8s
koyhoge
0
1.6k
Other Decks in Programming
See All in Programming
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
130
Oxlintはいいぞ(続)
yug1224
1
520
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
200
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
110
高専、大学編入、そして未踏へ〜プロダクト開発とキャリアの歩み - Technical College, University Transfer, and On to “Mitou” / My Journey in Product Development and Career
pkmiya
0
130
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
400
AIに既存システムを理解させる技術 ~レガシーを見捨てないハーネスエンジニアリング入門~
ochtum
0
190
ソフトウェアラスタライザ
fadis
1
760
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
670
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
260
이 함수, 실패하면 어떻게 되나요? null부터 Rich Errors까지, Kotlin 에러 처리 15년
haeti2
0
110
ALB ログから Trace を気合で繋げる技術
fohte
7
840
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Docker and Python
trallard
47
4.2k
GraphQLとの向き合い方2022年版
quramy
50
15k
From π to Pie charts
rasagy
0
350
Mobile First: as difficult as doing things right
swwweet
225
10k
A Tale of Four Properties
chriscoyier
163
24k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
sira's awesome portfolio website redesign presentation
elsirapls
0
380
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
Claude Code のすすめ
schroneko
67
230k
Transcript
ϝʔϧςϯϓϨʔτ Ͳ͏ͯ͠·͔͢ খࢁࢤ !LPZIPHF ୈճ1)1ษڧձ౦ژ http://joind.in/12013
BCPVU͍͜΄͛ ‣খࢁࢤ ͜·ͯͭ͡ ‣ϑϦʔϥϯεϓϩάϥϚʔ ‣5XJUUFS!LPZIPHF ‣GBDFCPPLIUUQGBDFCPPLDPNLPZIPHF ‣ೱ͍ώήLPZIJHF ڊ΄͛LZPIPHFͱΑؒ͘ ҧ͑ΒΕΔ
ϝʔϧૹ৴ ‣αʔϏε͔ΒϢʔβʹϝʔϧΛૹΔͷ·͊ී௨ ‣ొ֬ೝ ‣֤छ௨ ‣ཧऀͷϨϙʔτϝʔϧ ‣࣍ɾि࣍ɾ݄࣍ ‣Ξϥʔτ
ϝʔϧຊจੜ ‣มల։͍ͨ͠ ‣ςϯϓϨʔτΤϯδϯ͏ ‣ςϯϓϨʔτϑΝΠϧ %# ‣4VCKFDUผʹ࣋ͭ ‣ϝʔϧૹ৴ϥΠϒϥϦຊจͱϝʔϧϔομ ผѻ͍ͷ߹͕ଟ͍
'SPNͱΤϯϕϩʔϓGSPN ‣'SPNϔομӦۀతͳཧ༝Ͱมߋ͞ΕΔ ‣ςϯϓϨʔτతʹॲཧ͍ͨ͠ ‣ΤϯϕϩʔϓGSPNΤϥʔͷ߹ͷฦૹΞυϨ ε ‣γεςϜݻఆͰߏΘͳ͍
͜ΜͳํͲ͏͔ ‣ϝʔϧςϯϓϨʔτ ‣ςϯϓϨʔτΤϯδϯͷػೳͰׂࣗ͝༝ʹ ‣ϝʔϧϔομॻ͜͏ͱࢥ͑ॻ͚Δ ‣4VCKFDU ‣'SPN ‣3FQMZUP
From: {{ mail_from }} Subject: ご登録ありがとうございます。 ! {{ username }}様
! このたびは、ほげサービスにご登録ありがとうござ います。 以下のURLをクリックして最終登録作業をして下さ い。 ! {{ confirm_url }} ! 今後ともほげサービスをよろしくお願いします。 ςϯϓϨʔτྫ
From: “ほげサービスサポート” <
[email protected]
> Subject: ご登録ありがとうございます。 ! ぺちぱ太郎様 ! このたびは、ほげサービスにご登録ありがとうござ います。
以下のURLをクリックして最終登録作業をして下さ い。 ! http://hoge.example.com/confirm/DqoGkxQi2fN ! 今後ともほげサービスをよろしくお願いします。 มల։ޙ
// まず空行をチェック $headend = strpos($message, "\n\n"); if ($headend === false)
{ // 空行がなければいきなり本文 $this->headers = array(); $this->body = $message; return; } ࠷ॳͷۭߦ·Ͱϔομ
$head = substr($message, 0, $headend); $body = substr($message, $headend +
2); ! $checkempty = trim($body); if (empty($checkempty)) { // やはりヘッダなし $this->headers = array(); $this->body = $message; return; } ϔομͱຊจΛ͚Δ
$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; ֤ϔομʹׂ
͓·͚ ‣ςϯϓϨʔτΤϯδϯ͑ͳ͍Ҋ݅ ‣1)1ͦͦςϯϓϨʔτΤϯδϯͩͱ͍͏ ͜ͱΛΕͯͳ͍͔ʂ ‣FWBM͢ΕΠΠδϟφʔΠX
From: ${mail_from} Subject: ご登録ありがとうございます。 ! ${username}様 ! このたびは、ほげサービスにご登録ありがとうござ います。 以下のURLをクリックして最終登録作業をして下さ
い。 ! ${confirm_url} ! 今後ともほげサービスをよろしくお願いします。 ςϯϓϨʔτྫ
function render($template, $params) { extract($params); ! $code = 'return "'
. addslashes($template) . '";'; $result = eval($code); return $result; } ؆қςϯϓϨʔτΤϯδϯ
֎෦͔ΒͷೖྗΛ QBSBNTʹೖΕΔࡍʹ ҙ͢Δ͜ͱʂX
͓͠·͍