thtg88 / laravel-contact-request
一个用于发送联系请求电子邮件的包。
Requires
- php: ^7.3|^8.0
- anhskohbo/no-captcha: ^3.0
- fruitcake/laravel-cors: ^1.0 || ^2.0
- laravel/framework: ^7.0.0 || ^8.0.0 || ^9.0.0
Requires (Dev)
- brainmaestro/composer-git-hooks: ^2.8
- friendsofphp/php-cs-fixer: ^2.17
- mockery/mockery: ^1.3
- orchestra/testbench: ^6.0
- phpstan/phpstan: ^1.5.4
- phpunit/phpunit: ^9.5
- tightenco/tlint: ^6.2.2
This package is auto-updated.
Last update: 2024-09-24 13:15:55 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_response
或g-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。所有安全漏洞将得到及时处理。