邮件发送

未匹配的标注

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")

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/masonite/4.0/fe...

译文地址:https://learnku.com/docs/masonite/4.0/fe...

上一篇 下一篇
贡献者:3
讨论数量: 0
发起讨论 只看当前版本


暂无话题~