Php Laravel发送电子邮件
我正在尝试从使用Laravel框架的应用程序发送电子邮件。我已经安装了Sximo作为与Laravel合作的主题,该应用程序正在AmazonAWS上运行。所有的设置似乎都很好,因为它正在按预期工作 我在*C:\xampp\htdocs\public\API\savequestionly.php*上有一个API设置,它从移动应用程序接收数据并将数据保存到MySQL表中。这也在按预期工作 其思想是,如果API接收到一些数据,将生成一封发送到预定义电子邮件地址的电子邮件。这样,我就有了一个文件,用于接收数据,将其写入数据库,然后生成电子邮件,如下所示 对于邮件部分,我将遵循Laravel网站上的示例 saveinventory.phpPhp Laravel发送电子邮件,php,laravel,email,amazon-web-services,Php,Laravel,Email,Amazon Web Services,我正在尝试从使用Laravel框架的应用程序发送电子邮件。我已经安装了Sximo作为与Laravel合作的主题,该应用程序正在AmazonAWS上运行。所有的设置似乎都很好,因为它正在按预期工作 我在*C:\xampp\htdocs\public\API\savequestionly.php*上有一个API设置,它从移动应用程序接收数据并将数据保存到MySQL表中。这也在按预期工作 其思想是,如果API接收到一些数据,将生成一封发送到预定义电子邮件地址的电子邮件。这样,我就有了一个文件,用于接收
<?php
$json = file_get_contents('php://input');
$questionnairevalues = json_decode($json, true);
$position = $questionnairevalues['position'];
$question_one = $questionnairevalues['question_one'];
$question_two = $questionnairevalues['question_two'];
$question_three = $questionnairevalues['question_three'];
$question_four = $questionnairevalues['question_four'];
$question_five = $questionnairevalues['question_five'];
$query = "INSERT INTO tb_q (position, question_one, question_two, question_three, question_four, question_five) "
. "VALUES('$position', '$question_one', '$question_two', '$question_three', '$question_four', '$question_five')";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
if ($result) {
echo 'Success';
// Getting error here
Mail::send('emails.contact.blade', $position, function ($message) {
$message->from('myEmail@test.com', 'Laravel');
$message->to('myOtherEmail@test.com');
});
echo '\r\nMail sent success';
}
else {
echo 'Error';
}
mysqli_close($mysqli);
到文件的顶部,但随后出现错误:“警告:在第2行的C:\xampp\htdocs\public\api\savequestionly.php中,具有非复合名称“Mail”的use语句无效”
如何使用Laravel正确地实现邮件功能
我也尝试过使用PHP的内置
mail('myEmail@test.com', 'My Subject', 'My message');
功能。这不会产生错误,但不会发送或接收电子邮件。将此添加到控制器顶部:
use Illuminate\Support\Facades\Mail;
在您的情况下,请直接使用:
\Illuminate\Support\Facades\Mail::send('emails.contact.blade', $position, function ($message) {
在您的Config/app.php中,不要使用
Mail::send('emails.contact.blade',$position,function($message){
,而是检查是否有
Illuminate\Mail\MailServiceProvider::class,
在“提供程序”下。并在“别名”下选中
'Mail' => Illuminate\Support\Facades\Mail::class,
编辑:
根据错误,它正在查看您现在所在的inventory.php中的外观。因此,请尝试将此代码放入控制器中。
要创建控制器,请在终端类型中
php artisan make:controller controllerName
如果此页面是独立的,则必须使用composer才能使用邮件: 加
在页面顶部(替换路径以匹配
供应商/autoload.php
文件的位置)您是否更改了.env文件?您需要自动加载类在您的文件中,检查Hi Shanu k k-不,我没有更改.env文件。我是否只需将MAIL_主机、MAIL_端口、MAIL_用户名和MAIL_密码更改为我自己的电子邮件服务器详细信息?这会改变错误吗?尽管我正在重新设置。在第56行的C:\xampp\htdocs\public\api\savequestionly.php中找不到Class'MAIL'?尝试了此操作,但仍然出现错误致命错误:在C:\xampp\htdocs\public\api\savequestionly.php的第58行中找不到类'illumb\Support\Facades\Mail'。在使用illumb\Support\Facades\Mail时没有出现任何错误;但是,是的,两者都有。否,我遇到致命错误:在C:\xampp\htdocs\p中找不到类'illumb\Support\Facades\Mail'第58行的ublic\api\savequestionly.php是否在您的视图中!然后,php似乎正在查找公用文件夹中的light文件夹。您能告诉我您有此代码的文件路径吗?它不是在控制器中吗?文件路径是C:\xampp\htdocs\public\api\savequestionly.php
php artisan make:controller controllerName
require 'vendor/autoload.php';