我试图创建一个简单的联系我们表单电子邮件,并使用Laravel附带的现有默认电子邮件模板。
在我的表格中,我从用户处收集以下输入:
我使用以下名为SendEmailRequest的FormRequest
规则来验证输入:
public function rules()
{
return [
'first_name' => ['required', 'string', 'min:3'],
'last_name' => ['required', 'string', 'min:3'],
'email' => ['required', 'email'],
'subject' => ['required', 'in:' . implode(',', config('contact-us-subjects'))],
'message' => ['required', 'string', 'min:10'],
];
}
public function sendEmail(SendEmailRequest $sendEmailRequest)
{
$validated = $sendEmailRequest->validated();
$data['slot'] = view('mail.contact-us', $validated)->render();
Mail::send('vendor.mail.html.message', $data, function($message) use($validated) {
$message->from($validated['email'], $validated['first_name'] . ' ' . $validated['last_name']);
$message->subject($validated['subject']);
$message->to(config('mail.from.address'), config('mail.from.name'));
});
return redirect()
->back()
->with('status', 'Thanks, your email has been successfully sent to us');
}
当我运行这个;我得到以下错误:
Facade\Ignition\Exceptions\ViewException没有为[mail]定义提示路径。(视图:C:\xampp\htdocs\MyApp\src\resources\views\vendor\mail\html\message.blade.php)
我使用Laravel 6. x与PHP 7. x。知道我可能做错了什么吗?
我解决这个问题的方式略有不同。我必须以markdown
的形式构建可邮寄的邮件。
第一步。使用这个artisan命令创建一个新的mail:php artisan make: mail ConrectUs
第二步。确保在config/mail上设置了默认的
,例如:至
(类似于发件人地址/姓名)。php
'to' => [
'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'),
'name' => env('MAIL_FROM_NAME', 'Example'),
],
第三步。修改app/Mail/ContactUs。php
如下所示:
<?php
namespace App\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class ContactUs extends Mailable
{
use Queueable, SerializesModels;
/**
* @var array $data
*/
private $data;
/**
* Create a new message instance.
*
* @param array $data
*/
public function __construct(array $data)
{
$this->data = $data;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this
->from($this->data['email'], $this->data['first_name'] . ' ' . $this->data['last_name'])
->subject($this->data['subject'])
->markdown('mail.contact-us', [
'messageBody' => $this->data['message'],
]);
}
}
第四步。像这样使用新的邮件:
public function sendEmail(SendEmailRequest $sendEmailRequest)
{
$validated = $sendEmailRequest->validated();
Mail::send(new ContactUs($validated));
return redirect()
->back()
->with('status', 'Thanks, your email has been successfully sent to us');
}
这似乎实现了我最初追求的目标。电子邮件是使用laravel附带的默认模板发送的。
我试图在视图中显示我的降价电子邮件,但是我的邮件视图有问题,它显示为 还有我的降价邮件视图 我的视图上也有供应商,他们有自己的组件。
单击联系人表单中的“发送”按钮时出错。我使用的是Laravel 5.4。请帮我解决这个错误。 我已经清除了缓存,但仍然得到这个错误 预期响应代码250,但得到代码“530”,消息“530-5.5.1需要身份验证 这是我的邮件功能... 这是我的邮件。php文件
每次尝试提交此联系人表单时,都会收到以下错误消息: “请输入您的消息。” 名称错误消息和电子邮件错误消息不会出现,除非我将它们留空。我尝试在HTML中指定post。 以下是HTML: 下面是PHP:
问题内容: 我想在我正在创建的网站上使用联系表格,但是PHP不是一个选择,因为客户端不希望使用它。是否有一种聪明的方法可以解决此问题,例如发送电子邮件参数(非标准参数)或使用外部联系表?是否有一些不使用广告且可以轻松修改为其他语言的好产品? 谢谢。 问题答案: 联系人表单有数百种可嵌入(最可能基于)的解决方案,使您能够使用PHP等服务器端语言来解决问题。只是一个快速的谷歌搜索会给你一些。 或者,您
发送电子邮件时,页脚中有下面的标准消息。 此电子邮件是使用CakePHP框架发送的,http://cakephp.org. 它似乎使用了这个: 我的控制器里有这个。 创建了以下视图: /应用程序/查看/电子邮件/文本/梦想。ctp /应用程序/视图/布局/电子邮件/文本/梦想。ctp 是否有任何其他设置我错过了cakephp使用我的布局? *注:如果我重新命名我的梦想。ctp默认。ctp它使用那个
我正在研究AWS Cognito,下面是关于消息定制的两个问题。 1) 我正在使用“链接”验证类型为“电子邮件验证消息”编写AWS Cognito。我遇到了一个问题,“电子邮件消息”使其动态。 2)如何根据用户组或有条件地发送不同的“电子邮件消息”内容? 请建议。 谢啦