Php Laravel发送电子邮件

Php 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接收到一些数据,将生成一封发送到预定义电子邮件地址的电子邮件。这样,我就有了一个文件,用于接收

我正在尝试从使用Laravel框架的应用程序发送电子邮件。我已经安装了Sximo作为与Laravel合作的主题,该应用程序正在AmazonAWS上运行。所有的设置似乎都很好,因为它正在按预期工作

我在*C:\xampp\htdocs\public\API\savequestionly.php*上有一个API设置,它从移动应用程序接收数据并将数据保存到MySQL表中。这也在按预期工作

其思想是,如果API接收到一些数据,将生成一封发送到预定义电子邮件地址的电子邮件。这样,我就有了一个文件,用于接收数据,将其写入数据库,然后生成电子邮件,如下所示

对于邮件部分,我将遵循Laravel网站上的示例

saveinventory.php

<?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';