ایجاد قالبهای ایمیل
برای شروع، محتوای ایمیل خوشآمدگویی را بسیار ساده نگه میداریم، با یک پیام کوتاه تا به کاربر اطلاع دهیم که ثبتنامشان موفقیتآمیز بوده و شماره شناساییشان را تأیید کنیم. چیزی شبیه به این:
Hi, Thanks for signing up for a Greenlight account. We're excited to have you on board! For future reference, your user ID number is 123. Thanks, The Greenlight Team
رویکردهای مختلفی وجود دارد که میتوانیم برای تعریف و مدیریت محتوای این ایمیل از آنها استفاده کنیم، اما یک روش راحت و انعطافپذیر استفاده از قابلیت template در Go با پکیج html/template است.
اگر قصد دارید همراه پیش بروید، ابتدا یک پوشه جدید internal/mailer/templates در پروژه خود ایجاد کنید و سپس یک فایل user_welcome.tmpl به آن اضافه کنید. به این صورت:
$ mkdir -p internal/mailer/templates $ touch internal/mailer/templates/user_welcome.tmpl
در این فایل، سه قالب نامگذاریشده برای استفاده در ایمیل خوشآمدگویی تعریف خواهیم کرد:
- یک قالب
"subject"حاوی خط موضوع ایمیل. - یک قالب
"plainBody"حاوی نسخه متن ساده متن ایمیل. - یک قالب
"htmlBody"حاوی نسخه HTML متن ایمیل.
فایل internal/mailer/templates/user_welcome.tmpl را بهروزرسانی کنید تا محتوای این قالبها را شامل شود:
{{define "subject"}}Welcome to Greenlight!{{end}}
{{define "plainBody"}}
Hi,
Thanks for signing up for a Greenlight account. We're excited to have you on board!
For future reference, your user ID number is {{.ID}}.
Thanks,
The Greenlight Team
{{end}}
{{define "htmlBody"}}
<!doctype html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>Hi,</p>
<p>Thanks for signing up for a Greenlight account. We're excited to have you on board!</p>
<p>For future reference, your user ID number is {{.ID}}.</p>
<p>Thanks,</p>
<p>The Greenlight Team</p>
</body>
</html>
{{end}}
اگر کتاب Let's Go را خوانده باشید، این ساختار و نحو قالب باید بسیار آشنا به نظر برسد و دوباره وارد جزئیات نمیشویم. اما بهطور خلاصه:
- سه قالب نامگذاریشده را با استفاده از تگهای
{{define "..."}}...{{end}}تعریف کردهایم. - میتوانید دادههای پویا را در این قالبها با استفاده از کاراکتر
.(که به آن dot گفته میشود) رندر کنید. در فصل بعدی یک ساختارUserرا بهعنوان داده پویا به قالبها پاس خواهیم داد، که به این معنی است که میتوانیم شناسه کاربر را با استفاده از تگ{{.ID}}در قالبها رندر کنیم.