邮件发送
Masonite 有一个简单而强大的邮件功能,用于从您的应用程序发送电子邮件。
创建电子邮件
要使用 Masonite 创建和发送电子邮件,您必须首先构建一个Mailable
类。此类将充当您的电子邮件的设置,例如您发送的地址、标题、电子邮件的文本、电子邮件的 html 等。
当您准备好发送电子邮件时,可以更改或覆盖所有这些设置,稍后会详细介绍。
第一步,运行命令,初始化邮件模块
$ python craft mailable Welcome
这将创建您的邮件模块,它看起来像这样:
class Welcome(Mailable):
def build(self):
(
self.subject("Welcome to our site!")
.from_("admin@example.com")
.view("mailables.welcome", {})
)
发送邮件
您可以使用Mail
类在控制器中轻松发送邮件:
from masonite.mail import Mail
from app.mailables.Welcome import Welcome
class WelcomeController(Controller):
def welcome(self, mail: Mail):
mail.mailable(Welcome().to('user@example.com')).send()
请注意,此时您可以在发送邮件前,调用相应方法修改配置。
邮件选项
您可以使用这些选项中的任何一个来修改可邮寄的行为
Options | Description |
---|---|
to('user@example.com') |
指定要向其发送电子邮件的用户。 您也可以指定用户名,例如 to('Joseph <user@example.com>') 。 |
from_("admin@example.com") |
指定电子邮件应显示的地址。 |
cc(["accounting@example.com"]) |
应“抄送”到此电子邮件的地址列表 |
bcc(["accounting@example.com"]) |
应“盲抄”到此电子邮件的地址列表 |
subject('Subject of the Email') |
指定电子邮件的主题。 |
reply_to('customers@example.com') |
指定当用户单击回复此电子邮件时将设置的地址 |
text('Welcome to Masonite') |
指定电子邮件的文本信息 |
html('Welcome to Masonite') |
指定电子邮件的 HTML 信息 |
view('mailables.view', {}) |
指定带有数据的视图文件以呈现电子邮件的 HTML 版本 |
priority(1) |
指定电子邮件的优先级,值应为 1 到 5。 |
low_priority() |
将电子邮件的优先级设置为 5。 |
high_priority() |
将电子邮件的优先级设置为 1。 |
attach('MAY.pdf', 'path/invoice.pdf') |
将文件附加到电子邮件。 |
发送附件
使用 Masonite 发送附件真的很简单。只需在发送之前将文件附加到可邮寄文件:
user = user.find(1)
welcome_mailable = WelcomeMailable().to(f"{user.name} <{user.email}>')
welcome_mailable.attach("MAY-2021-invoice.pdf", "storage/pdf/invoice.pdf")
mail.mailable(welcome_mailable).send()
然后,你将在电子邮件中看到你的附件。
可邮寄的响应
当你构建电子邮件时,最好先看看它们的视觉效果,然后再发送它们。当你尝试使这些样式恰到好处时,这可以节省大量时间。
你可以简单地在你的控制器中返回你的邮件,它会像一个普通的视图文件一样返回。
from app.mailables.Welcome import Welcome
class WelcomeController(Controller):
def welcome(self):
return Welcome()
如果你在 mailable 中使用 view()
选项,那么你需要在 mailable 上设置应用程序:
from app.mailables.Welcome import Welcome
from wsgi import application
class WelcomeController(Controller):
def welcome(self):
return Welcome().set_application(application)
更改驱动程序
你可以使用 send()
方法中的 driver
参数更改发送电子邮件的驱动程序:
mail.send(Welcome().to('user@example.com'), driver="smtp")
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。