thtg88/laravel-contact-request

一个用于发送联系请求电子邮件的包。

v0.16.0 2022-04-07 20:38 UTC

README

从您的联系表单发送电子邮件。

目录

安装

composer require thtg88/laravel-contact-request

您可以通过运行以下命令发布配置文件和视图:

php artisan vendor:publish --provider="Thtg88\ContactRequest\ContactRequestServiceProvider"

用法

Laravel Contact Request公开了一个路由,用于发送包含数据的电子邮件。

路由

该路由位于POST /contact-requests

您可以通过向默认路由添加前缀来自定义该路由。这可以通过在您的.env文件中添加一个名为CONTACT_REQUEST_ROUTE_PREFIX的变量来实现,例如

CONTACT_REQUEST_ROUTE_PREFIX="api/v1"

验证

数据通过SubmitContactRequestRequest类进行验证。

验证规则如下

'email' => 'required|string|email|max:255',
'message' => 'required|string|max:4000',
'name' => 'required|string|max:255',
'phone' => 'required|string|max:255',

您可以通过发布Laravel Contact Request配置文件并应用您的规则来覆盖这些验证规则

php artisan vendor:publish --provider="Thtg88\ContactRequest\ContactRequestServiceProvider" --tag="contact-request-config"

验证码

Laravel Contact Request支持Google ReCaptcha V2。这必须在名为g_recaptcha_responseg-recaptcha-response的变量中发送到请求数据中。

您可以通过将以下内容添加到您的.env变量中来启用ReCaptcha V2支持

CONTACT_REQUEST_RECAPTCHA_MODE=true
NOCAPTCHA_SECRET=YourReCaptchaSecretKey
NOCAPTCHA_SITEKEY=YourRecaptchaSiteKey

邮件

Laravel Contact Request将向请求中提供的电子邮件发送联系请求的确认电子邮件,并向您选择的内部接收者发送一封。

Laravel Contact Request依赖于默认的Laravel邮件发送者。请确保您已配置您的邮件提供者在您的.env文件中。有关指导,请参阅Laravel文档

验证后的数据将包含在两封电子邮件中。

稍后发送

Laravel Contact Request支持将邮件投递到队列以进行即时投递。

要配置它,在您的.env文件中,只需设置

CONTACT_REQUEST_MAIL_DELIVER_LATER=true

这将利用Illuminate\Mail\Mailable类的queue方法,以及默认配置的队列驱动程序。

有关更多信息,请参阅Laravel官方文档

内部接收者

您可以通过在.env文件中添加一个变量来自定义内部接收者

CONTACT_REQUEST_MAIL_INTERNAL_NOTIFICATION_ADDRESS=mail@example.com

附加选项

您还可以自定义以下内容

  • 内部接收者的电子邮件主题: CONTACT_REQUEST_MAIL_INTERNAL_SUBJECT="内部联系请求主题"
  • 确认电子邮件的主题(发送给请求中指定的接收者): CONTACT_REQUEST_MAIL_SUBJECT="联系请求收据"
  • 确认电子邮件的签名: CONTACT_REQUEST_MAIL_SIGNATURE_NAME="John Doe"

邮件视图是简单的HTML,但您也可以通过指定项目中可用的视图名称来自定义这些视图,类似于在控制器中返回视图的方式,例如'view.name'

  • 主要电子邮件HTML布局视图名称: CONTACT_REQUEST_MAIL_VIEWS_LAYOUT=layouts.email
  • 内部通知HTML视图名称: CONTACT_REQUEST_MAIL_VIEWS_REQUESTED_INTERNAL=emails.contact.internal
  • 内部通知纯文本视图名称: CONTACT_REQUEST_MAIL_VIEWS_REQUESTED_INTERNAL_PLAIN=emails.contact.internal_plain
  • 发送给请求中提供的接收者的通知 - HTML视图名称: CONTACT_REQUEST_MAIL_VIEWS_REQUESTED=emails.contact.requested
  • 请求中提供的收件人通知 - 平面视图名称: CONTACT_REQUEST_MAIL_VIEWS_REQUESTED=emails.contact.requested_plain

即将推出更多自定义选项!

许可协议

Laravel 联系请求是开源软件,遵循 MIT 许可证

安全漏洞

如果您在 Laravel 联系请求中发现安全漏洞,请发送电子邮件至 Marco Marassi,邮箱地址为 security@marco-marassi.com。所有安全漏洞将得到及时处理。