{"id":849,"date":"2025-06-12T01:06:54","date_gmt":"2025-06-11T17:06:54","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/849.html"},"modified":"2025-06-12T01:06:54","modified_gmt":"2025-06-11T17:06:54","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8laravel%e4%b8%ad%e6%ad%a3%e7%a1%ae%e5%8f%91%e9%80%81%e9%82%ae%e4%bb%b6%ef%bc%9a%e6%ad%a3%e7%a1%ae%e7%9a%84%e6%96%b9%e6%b3%95","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/849.html","title":{"rendered":"\u5982\u4f55\u5728Laravel\u4e2d\u6b63\u786e\u53d1\u9001\u90ae\u4ef6\uff1a\u6b63\u786e\u7684\u65b9\u6cd5"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312;Laravel&#20013;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#26159;&#19968;&#31181;&#24120;&#35265;&#30340;&#38656;&#27714;&#65292;&#21487;&#20197;&#25552;&#39640;&#24212;&#29992;&#31243;&#24207;&#30340;&#29992;&#25143;&#20307;&#39564;&#21644;&#21487;&#38752;&#24615;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#22312;Laravel&#20013;&#27491;&#30830;&#21457;&#36865;&#37038;&#20214;&#30340;&#27493;&#39588;&#65306;<\/p>\n<h3>1. &#23433;&#35013;Laravel<\/h3>\n<p>&#22914;&#26524;&#20320;&#36824;&#27809;&#26377;&#23433;&#35013;Laravel&#65292;&#21487;&#20197;&#36890;&#36807;Composer&#26469;&#23433;&#35013;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer create-project --prefer-dist laravel\/laravel my-laravel-app\ncd my-laravel-app<\/code><\/pre>\n<h3>2. &#37197;&#32622;Email&#26381;&#21153;<\/h3>\n<p>&#22312;<code>config\/services.php<\/code>&#25991;&#20214;&#20013;&#37197;&#32622;&#20320;&#30340;&#30005;&#23376;&#37038;&#20214;&#26381;&#21153;&#25552;&#20379;&#21830;&#12290;&#20363;&#22914;&#65292;&#20351;&#29992;SMTP&#26381;&#21153;&#65306;<\/p>\n<pre><code class=\"language-php\">return [\n    'mail' =&gt; [\n        'driver' =&gt; env('MAIL_DRIVER', 'smtp'),\n        'host' =&gt; env('MAIL_HOST', 'smtp.example.com'),\n        'port' =&gt; env('MAIL_PORT', 587),\n        'username' =&gt; env('MAIL_USERNAME'),\n        'password' =&gt; env('MAIL_PASSWORD'),\n        'encryption' =&gt; env('MAIL_ENCRYPTION', 'tls'),\n        'sendmail' =&gt; '\/usr\/sbin\/sendmail -bs',\n        'pretend' =&gt; false,\n    ],\n];<\/code><\/pre>\n<h3>3. &#21019;&#24314;Mail&#31867;<\/h3>\n<p>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;Mail&#31867;&#26469;&#23450;&#20041;&#20320;&#35201;&#21457;&#36865;&#30340;&#20869;&#23481;&#12290;&#20363;&#22914;&#65292;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026;<code>WelcomeEmail<\/code>&#30340;&#31867;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan make:mail WelcomeEmail<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31867;&#20013;&#65292;&#20320;&#21487;&#20197;&#23450;&#20041;&#37038;&#20214;&#30340;&#20027;&#39064;&#12289;&#25509;&#25910;&#32773;&#12289;&#27169;&#26495;&#31561;&#20449;&#24687;&#12290;<\/p>\n<pre><code class=\"language-php\">namespace AppMail;\n\nuse IlluminateBusQueueable;\nuse IlluminateContractsQueueShouldQueue;\nuse IlluminateMailMailable;\nuse IlluminateQueueSerializesModels;\n\nclass WelcomeEmail extends Mailable\n{\n    use Queueable, SerializesModels;\n\n    public $user;\n\n    \/**\n     * Create a new message instance.\n     *\n     * @param AppUser $user\n     *\/\n    public function __construct($user)\n    {\n        $this-&gt;user = $user;\n    }\n\n    \/**\n     * Build the message.\n     *\n     * @return $this\n     *\/\n    public function build()\n    {\n        return $this-&gt;view('emails.welcome')\n                    -&gt;subject('&#27426;&#36814;&#26469;&#21040;&#25105;&#20204;&#30340;&#24212;&#29992;');\n    }\n}<\/code><\/pre>\n<h3>4. &#21457;&#36865;&#37038;&#20214;<\/h3>\n<p>&#22312;&#25511;&#21046;&#22120;&#25110;&#20854;&#20182;&#22320;&#26041;&#35843;&#29992;&#36825;&#20010;Mail&#31867;&#26469;&#21457;&#36865;&#37038;&#20214;&#12290;&#20363;&#22914;&#65292;&#21019;&#24314;&#19968;&#20010;&#25511;&#21046;&#22120;&#65306;<\/p>\n<pre><code class=\"language-bash\">php artisan make:controller MailController<\/code><\/pre>\n<p>&#28982;&#21518;&#22312;&#25511;&#21046;&#22120;&#20013;&#28155;&#21152;&#21457;&#36865;&#37038;&#20214;&#30340;&#26041;&#27861;&#65306;<\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse AppMailWelcomeEmail;\nuse IlluminateSupportFacadesMail;\n\nclass MailController extends Controller\n{\n    public function sendWelcomeEmail()\n    {\n        $user = User::find(1); \/\/ &#20551;&#35774;&#26377;&#19968;&#20010;&#29992;&#25143;ID&#20026;1\n        Mail::to($user-&gt;email)-&gt;send(new WelcomeEmail($user));\n\n        return response()-&gt;json(['message' =&gt; '&#37038;&#20214;&#24050;&#21457;&#36865;']);\n    }\n}<\/code><\/pre>\n<h3>5. &#35270;&#22270;&#25991;&#20214;<\/h3>\n<p>&#21019;&#24314;&#19968;&#20010;&#35270;&#22270;&#25991;&#20214;&#26469;&#26174;&#31034;&#37038;&#20214;&#20869;&#23481;&#12290;&#20363;&#22914;&#65292;&#22312;<code>resources\/views\/emails\/welcome.blade.php<\/code>&#20013;&#28155;&#21152;&#20197;&#19979;&#20869;&#23481;&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Welcome Email&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;&#27426;&#36814;&#26469;&#21040;&#25105;&#20204;&#30340;&#24212;&#29992;&lt;\/h1&gt;\n    &lt;p&gt;{{ $user-&gt;name }}&lt;\/p&gt;\n    &lt;p&gt;&#24863;&#35874;&#27880;&#20876;&#65281;&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#23436;&#25972;&#30340;&#20195;&#30721;&#22914;&#19979;&#65306;<\/p>\n<p><strong>app\/Mail\/WelcomeEmail.php<\/strong><\/p>\n<pre><code class=\"language-php\">namespace AppMail;\n\nuse IlluminateBusQueueable;\nuse IlluminateContractsQueueShouldQueue;\nuse IlluminateMailMailable;\nuse IlluminateQueueSerializesModels;\n\nclass WelcomeEmail extends Mailable\n{\n    use Queueable, SerializesModels;\n\n    public $user;\n\n    \/**\n     * Create a new message instance.\n     *\n     * @param AppUser $user\n     *\/\n    public function __construct($user)\n    {\n        $this-&gt;user = $user;\n    }\n\n    \/**\n     * Build the message.\n     *\n     * @return $this\n     *\/\n    public function build()\n    {\n        return $this-&gt;view('emails.welcome')\n                    -&gt;subject('&#27426;&#36814;&#26469;&#21040;&#25105;&#20204;&#30340;&#24212;&#29992;');\n    }\n}<\/code><\/pre>\n<p><strong>resources\/views\/emails\/welcome.blade.php<\/strong><\/p>\n<pre><code class=\"language-html\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;Welcome Email&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;&#27426;&#36814;&#26469;&#21040;&#25105;&#20204;&#30340;&#24212;&#29992;&lt;\/h1&gt;\n    &lt;p&gt;{{ $user-&gt;name }}&lt;\/p&gt;\n    &lt;p&gt;&#24863;&#35874;&#27880;&#20876;&#65281;&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p><strong>routes\/web.php<\/strong><\/p>\n<pre><code class=\"language-php\">use AppHttpControllersMailController;\n\nRoute::get('\/send-welcome-email', [MailController::class, 'sendWelcomeEmail']);<\/code><\/pre>\n<p><strong>app\/Http\/Controllers\/MailController.php<\/strong><\/p>\n<pre><code class=\"language-php\">namespace AppHttpControllers;\n\nuse AppMailWelcomeEmail;\nuse IlluminateSupportFacadesMail;\n\nclass MailController extends Controller\n{\n    public function sendWelcomeEmail()\n    {\n        $user = User::find(1); \/\/ &#20551;&#35774;&#26377;&#19968;&#20010;&#29992;&#25143;ID&#20026;1\n        Mail::to($user-&gt;email)-&gt;send(new WelcomeEmail($user));\n\n        return response()-&gt;json(['message' =&gt; '&#37038;&#20214;&#24050;&#21457;&#36865;']);\n    }\n}<\/code><\/pre>\n<p>&#36890;&#36807;&#20197;&#19978;&#27493;&#39588;&#65292;&#20320;&#21487;&#20197;&#22312;Laravel&#20013;&#27491;&#30830;&#22320;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#12290;&#30830;&#20445;&#20320;&#30340;&#30005;&#23376;&#37038;&#20214;&#26381;&#21153;&#37197;&#32622;&#27491;&#30830;&#65292;&#24182;&#19988;&#35270;&#22270;&#25991;&#20214;&#36335;&#24452;&#27491;&#30830;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>Laravel&#31616;&#21270;&#20102;&#21508;&#31181;Web&#24320;&#21457;&#20219;&#21153;&#30340;&#23454;&#29616;&#65292;&#24182;&#19988;&#26356;&#21152;&#21487;&#25345;&#32493;&#65292;&#21253;&#25324;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#12290;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#26159;web&#24212;&#29992;&#20013;&#24120;&#35265;&#30340;&#38656;&#27714;&#65292;&#26080;&#35770;&#26159;&#29992;&#25143;&#39564;&#35777;&#12289;&#36890;&#30693;&#36824;&#26159;&#26032;&#38395;&#36890;&#35759;&#12290;&#22312;&#26412;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#23398;&#20064;&#22914;&#20309;&#20351;&#29992;Laravel&#20869;&#32622;&#21151;&#33021;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#65292;&#36981;&#24490;&#26368;&#20339;&#23454;&#36341;&#12290;<\/p><p>&#21069;&#32622;&#26465;&#20214;<\/p><p>&#19968;&#20010;SMTP&#26381;&#21153;&#22120;&#25110;&#20687;Mailgun&#12289;SendGrid&#31561;&#37038;&#20214;&#26381;&#21153;&#12290;<\/p><p>&#22522;&#30784;&#30340;Laravel&#30693;&#35782;&#12290;<\/p><p>&#19968;&#20010;Laravel&#24212;&#29992;&#31243;&#24207;&#30340;&#35774;&#32622;<\/p><h2>&#22312;Laravel&#20013;&#37197;&#32622;&#37038;&#20214;&#21151;&#33021;&#12290;<\/h2><p>&#22312;&#24320;&#22987;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#20043;&#21069;&#65292;&#20320;&#38656;&#35201;&#37197;&#32622;&#20320;&#30340;&#30005;&#23376;&#37038;&#20214;&#35774;&#32622;&#12290;&#22312;&ldquo;&#37038;&#20214;&#35774;&#32622;&rdquo;&#20013;&#36827;&#34892;&#35774;&#32622;&#12290;<code>.env<\/code>&#35831;&#23558;&#25991;&#20214;&#19982;&#24744;&#30340;SMTP&#35814;&#32454;&#20449;&#24687;&#20851;&#32852;&#36215;&#26469;&#12290;&#20197;&#19979;&#26159;&#22312;Mailgun&#20013;&#30340;&#31034;&#20363;&#65306;<\/p><pre><code>MAIL_MAILER=smtp\nMAIL_HOST=smtp.mailgun.org\nMAIL_PORT=587\nMAIL_USERNAME=null\nMAIL_PASSWORD=null\nMAIL_ENCRYPTION=tls\n[email&nbsp;protected]\nMAIL_FROM_NAME=\"Example App\"\n<\/code><\/pre><p>&#35831;&#27880;&#24847;&#65292;&#26356;&#26032;&#37197;&#32622;&#26102;&#65292;&#35831;&#20351;&#29992;&#30495;&#23454;&#30340;&#20973;&#25454;&#65281;<\/p><h2>&#22312;Laravel&#20013;&#21019;&#24314;&#37038;&#20214;&#65288;Mailable&#65289;&#30340;&#26041;&#27861;&#22914;&#19979;&#65306;&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#21019;&#24314;&#19968;&#20010;&#32487;&#25215;&#33258;Mail::Message&#30340;&#31867;&#26469;&#23450;&#20041;&#20320;&#30340;&#37038;&#20214;&#20869;&#23481;&#12290;&#28982;&#21518;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;Mail::to()&#26041;&#27861;&#21521;&#37038;&#20214;&#28155;&#21152;&#25910;&#20214;&#20154;&#65292;&#24182;&#20351;&#29992;with()&#25110;attach()&#26041;&#27861;&#20256;&#36882;&#20219;&#20309;&#38656;&#35201;&#21253;&#21547;&#22312;&#20869;&#30340;&#25968;&#25454;&#12290;&#26368;&#21518;&#65292;&#36890;&#36807;&#35843;&#29992;send()&#26041;&#27861;&#23558;&#37038;&#20214;&#21457;&#36865;&#21040;&#25910;&#20214;&#20154;&#12290;<\/h2><p>Laravel &#25552;&#20379;&#20102;&#19968;&#31181;&#32452;&#32455;&#19982;&#30005;&#23376;&#37038;&#20214;&#30456;&#20851;&#25152;&#26377;&#20449;&#24687;&#30340;&#31616;&#27905;&#26041;&#27861;&#65292;&#36890;&#36807;&#19968;&#20010;&#21517;&#20026; Mailable &#30340;&#31867;&#26469;&#23454;&#29616;&#12290;&#20320;&#21487;&#20197;&#20351;&#29992; Artisan &#29983;&#25104;&#19968;&#20010;&#26032;&#30340; Mailable&#65306;<\/p><pre><code>php artisan make:mail WelcomeEmail\n<\/code><\/pre><p>&#35813;&#21629;&#20196;&#21019;&#24314;&#20102;&#19968;&#20010;&#26032;&#30340;&#31867;&#12290;<code>appMail<\/code>&#30446;&#24405;&#12290;&#20320;&#21487;&#20197;&#25351;&#23450;&#35270;&#22270;&#24182;&#26500;&#24314;&#30005;&#23376;&#37038;&#20214;&#22914;&#19979;&#65306;<\/p><pre><code>namespace AppMail;\n\nuse IlluminateBusQueueable;\nuse IlluminateMailMailable;\nuse IlluminateQueueSerializesModels;\nuse IlluminateContractsQueueShouldQueue;\n\nclass WelcomeEmail extends Mailable\n{\n use Queueable, SerializesModels;\n\n public function __construct()\n {\n \/\/ Initialization code\n }\n\n public function build()\n {\n return $this-&gt;view('emails.welcome');\n }\n}\n<\/code><\/pre><p>&#22312;&#24744;&#30340;&#35270;&#22270;&#25991;&#20214;&#20013;&#65292;&#24744;&#21487;&#20197;&#35774;&#35745;&#30005;&#23376;&#37038;&#20214;&#30340;HTML&#32467;&#26500;&#65292;&#22240;&#20026;Laravel&#40664;&#35748;&#35774;&#32622;&#20351;&#29992;Blade&#27169;&#26495;&#12290;<\/p><h2>&#27491;&#22312;&#22788;&#29702;&#24744;&#30340;&#37038;&#20214;&#12290;<\/h2><p>&#19968;&#26086;&#35774;&#32622;&#22909;Mailable&#65292;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#23601;&#31616;&#21333;&#21040;&#20687;&#20351;&#29992;&#23427;&#19968;&#26679;&#12290;<code>Mail<\/code>&#38376;&#38754;&#65292;&#22806;&#34915;&#12290;<\/p><pre><code>use Mail;\nuse AppMailWelcomeEmail;\n\nRoute::get('\/send-email', function () {\n Mail::to('[email&nbsp;protected]')-&gt;send(new WelcomeEmail());\n return 'Email sent';\n});\n<\/code><\/pre><p>&#20320;&#21487;&#20197;&#23558;&#21160;&#24577;&#25968;&#25454;&#20256;&#36882;&#32473;&#37038;&#20214;&#22120;&#65306;<\/p><pre><code>\nclass WelcomeEmail extends Mailable\n{\n use Queueable, SerializesModels;\n\n public $user;\n\n public function __construct($user)\n {\n $this-&gt;user = $user;\n }\n\n public function build()\n {\n return $this-&gt;view('emails.welcome')-&gt;with(['user' =&gt; $this-&gt;user]);\n }\n}\n<\/code><\/pre><pre><code>Mail::to($request-&gt;user())-&gt;send(new WelcomeEmail($request-&gt;user()));\n<\/code><\/pre><h2>&#25490;&#38431;&#25910;&#37038;&#20214;<\/h2><p>&#20351;&#29992; Laravel&#65292;&#20320;&#21487;&#20197;&#38431;&#21015;&#37038;&#20214;&#65292;&#36825;&#38750;&#24120;&#26377;&#29992;&#65292;&#21487;&#20197;&#38450;&#27490;&#30001;&#20110;&#21457;&#36865;&#26102;&#38388;&#23548;&#33268;&#30340;&#24212;&#29992;&#24310;&#36831;&#12290;&#35201;&#22312;&#19968;&#20010;&#38431;&#21015;&#19978;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#65306;<\/p><pre><code>use IlluminateSupportFacadesMail;\n\nMail::to('[email&nbsp;protected]')-&gt;queue(new WelcomeEmail());\n<\/code><\/pre><p>&#30830;&#20445;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#24050;&#35774;&#32622;&#20026;&#38431;&#21015;&#24037;&#20316;&#27169;&#24335;&#12290;&#24744;&#30340;<code>WelcomeEmail<\/code>&#20063;&#21487;&#20197;&#23454;&#26045;&#36825;&#20010;<code>ShouldQueue<\/code>&#30830;&#20445;&#25509;&#21475;&#33258;&#21160;&#30001;&#37038;&#20214;&#22120;&#25490;&#38431;&#12290;<\/p><h2>&#22312;Laravel&#20013;&#27979;&#35797;&#30005;&#23376;&#37038;&#20214;&#21487;&#20197;&#36890;&#36807;&#20197;&#19979;&#27493;&#39588;&#23454;&#29616;&#65306;\n\n&#21019;&#24314;&#19968;&#20010;&#31616;&#21333;&#30340;&#25511;&#21046;&#22120;&#65292;&#20363;&#22914; EmailController&#12290;\n&#22312;&#35813;&#25511;&#21046;&#22120;&#20013;&#23450;&#20041;&#19968;&#20010;&#26041;&#27861;&#26469;&#22788;&#29702;&#37038;&#20214;&#30340;&#21457;&#36865;&#36923;&#36753;&#12290;\n&#20351;&#29992;Eloquent ORM&#33719;&#21462;&#27169;&#22411;&#23454;&#20363;&#25110;&#25968;&#25454;&#24211;&#35760;&#24405;&#20197;&#22635;&#20805;&#37038;&#20214;&#20869;&#23481;&#12290;\n\n&#20197;&#19979;&#26159;&#20855;&#20307;&#31034;&#20363;&#20195;&#30721;&#65306;\n\/\/ EmailController.php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse AppModelsUser; \/\/ &#20551;&#35774;&#29992;&#25143;&#27169;&#22411;&#20026;User\n\nclass EmailController extends Controller\n{\n public function sendTestEmail()\n {\n $user = User::find(1); \/\/ &#36890;&#36807;ID&#25214;&#21040;&#29992;&#25143;&#23454;&#20363;\n $email = $user-&gt;email;\n\n return view(&#8217;emails.test-email&#8217;, compact(&#8217;email&#8217;));\n }\n}\n&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#39318;&#20808;&#20174;&#25968;&#25454;&#24211;&#20013;&#33719;&#21462;&#20102;&#29992;&#25143;&#23454;&#20363;&#65288;&#20551;&#35774;&#29992;&#25143;ID&#20026;1&#65289;&#65292;&#28982;&#21518;&#23558;&#29992;&#25143;&#30340;&#37038;&#31665;&#22320;&#22336;&#35774;&#32622;&#21040;&#35270;&#22270;&#20013;&#12290;&#26368;&#21518;&#65292;&#25105;&#20204;&#36820;&#22238;&#20102;&#19968;&#20010;&#21253;&#21547;&#37038;&#20214;&#27169;&#26495;&#30340;&#35270;&#22270;&#12290;\n&#22312;Laravel&#30340;resources\/views\/emails&#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026;test-email.blade.php&#30340;&#25991;&#20214;&#65292;&#29992;&#20110;&#26174;&#31034;&#37038;&#20214;&#20869;&#23481;&#65306;\n&lt;!&#8211; resources\/views\/emails\/test-email.blade.php &#8211;&gt;\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=&#8221;en&#8221;&gt;\n&lt;head&gt;\n &lt;meta charset=&#8221;UTF-8&#8243;&gt;\n &lt;title&gt;Test Email&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n &lt;h1&gt;Hello, {{ $email }}&lt;\/h1&gt;\n &lt;p&gt;This is a test email sent from your application.&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n&#29616;&#22312;&#65292;&#24403;&#20320;&#35775;&#38382; \/send-test-email &#36335;&#30001;&#26102;&#65292;&#20250;&#30475;&#21040;&#19968;&#23553;&#24102;&#26377;&#29992;&#25143;&#37038;&#31665;&#22320;&#22336;&#21644;&#27426;&#36814;&#20449;&#24687;&#30340;&#27979;&#35797;&#37038;&#20214;&#12290;<\/h2><p>&#30830;&#20445;&#30005;&#23376;&#37038;&#20214;&#35774;&#32622;&#30340;&#27979;&#35797;&#38750;&#24120;&#37325;&#35201;&#12290;Laravel &#25552;&#20379;&#20102;&ldquo;&#20551;&#21457;&rdquo;&#21151;&#33021;&#65292;&#21487;&#20197;&#24110;&#21161;&#24744;&#39564;&#35777;&#37038;&#20214;&#26159;&#21542;&#34987;&#27491;&#30830;&#21457;&#36865;&#65306;<\/p><pre><code>\/**\n * Test example for email sending.\n *\/\npublic function testEmailSending()\n{\n Mail::fake();\n\n \/\/ Perform application logic\n $response = $this-&gt;get('\/send-email');\n\n \/\/ Assert that an email was sent\n Mail::assertSent(WelcomeEmail::class);\n}\n<\/code><\/pre><p>&#36825;&#23454;&#38469;&#19978;&#24182;&#19981;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#65292;&#32780;&#26159;&#30830;&#20445;&#22312;&#27491;&#24120;&#24773;&#20917;&#19979;&#37038;&#20214;&#20250;&#21457;&#36865;&#12290;<\/p><h2>&#32467;&#35770;&#12290;<\/h2><p>&#20351;&#29992;Laravel&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#26159;&#19968;&#31181;&#31616;&#21333;&#30340;&#36807;&#31243;&#65292;&#20294;&#20854;&#32972;&#21518;&#30340;&#23454;&#29616;&#21253;&#21547;&#20016;&#23500;&#30340;&#21151;&#33021;&#65292;&#22914;&#38431;&#21015;&#21644;&#27979;&#35797;&#12290;&#25353;&#29031;&#26412;&#25945;&#31243;&#20013;&#30340;&#27493;&#39588;&#36827;&#34892;&#25805;&#20316;&#65292;&#24744;&#21487;&#20197;&#22312;Laravel&#24212;&#29992;&#31243;&#24207;&#20013;&#21487;&#38752;&#19988;&#39640;&#25928;&#22320;&#38598;&#25104;&#30005;&#23376;&#37038;&#20214;&#21151;&#33021;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#21457;&#36865;&#37038;&#20214;&#26159;&#24120;&#35265;&#30340;&#38656;&#27714;&#65292;&#29305;&#21035;&#26159;&#23545;&#20110;&#38656;&#35201;&#29992;&#25143;&#39564;&#35777;&#12289;&#36890;&#30693;&#25110;&#32773;&#25512;&#36865;&#20449;&#24687;&#31561;&#22330;&#26223;&#12290;&#19979;&#38754;&#25105;&#23558;&#25351;&#23548;&#24744;&#22914;&#20309;&#20351;&#29992; Laravel &#30340; Mail &#31867;&#26469;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#12290;<\/p>\n<h3>&#27493;&#39588; 1: &#21019;&#24314;&#19968;&#20010;&#26032;&#31867;<\/h3>\n<p>&#39318;&#20808;&#65292;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340; <code>Email<\/code> &#31867;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppMail;\n\nuse IlluminateBusQueueable;\nuse IlluminateContractsQueueShouldQueue;\nuse IlluminateMailMailable;\nuse IlluminateQueueSerializesModels;\n\nclass Email extends Mailable\n{\n    use Queueable, SerializesModels;\n\n    public $data;\n\n    \/**\n     * Create a new message instance.\n     *\n     * @return void\n     *\/\n    public function __construct($data)\n    {\n        $this-&gt;data = $data;\n    }\n\n    \/**\n     * Build the message.\n     *\n     * @return IlluminateMailMailable\n     *\/\n    public function build()\n    {\n        return $this-&gt;view('emails.email');\n    }\n}<\/code><\/pre>\n<h3>&#27493;&#39588; 2: &#37197;&#32622;&#37038;&#20214;&#26381;&#21153;<\/h3>\n<p>&#30830;&#20445;&#24744;&#30340; Laravel &#24212;&#29992;&#24050;&#21551;&#29992;&#37038;&#20214;&#26381;&#21153;&#65288;&#36890;&#24120;&#26159;&#36890;&#36807; Composer &#23433;&#35013;&#20102; mail() &#26041;&#27861;&#30340; Eloquent ORM&#65289;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require illuminate\/mail<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#20320;&#38656;&#35201;&#37197;&#32622;&#37038;&#20214;&#26381;&#21153;&#12290;&#25171;&#24320; <code>.env<\/code> &#25991;&#20214;&#24182;&#28155;&#21152;&#20197;&#19979;&#34892;&#65306;<\/p>\n<pre><code class=\"language-bash\">MAIL_DRIVER=smtp\nMAIL_HOST=your-mail-host\nMAIL_PORT=your-port\nMAIL_USERNAME=your-email-address\nMAIL_PASSWORD=your-password\nMAIL_ENCRYPTION=tls<\/code><\/pre>\n<p>&#26367;&#25442;&#19978;&#36848;&#37197;&#32622;&#20013;&#30340; <code>your-mail-host<\/code>, <code>your-port<\/code>, <code>your-email-address<\/code>, &#21644; <code>your-password<\/code> &#20026;&#23454;&#38469;&#20540;&#12290;<\/p>\n<h3>&#27493;&#39588; 3: &#21457;&#36865;&#37038;&#20214;<\/h3>\n<p>&#29616;&#22312;&#21487;&#20197;&#24320;&#22987;&#21457;&#36865;&#37038;&#20214;&#20102;&#12290;&#32534;&#20889;&#19968;&#20010;&#25511;&#21046;&#22120;&#26041;&#27861;&#26469;&#22788;&#29702;&#37038;&#20214;&#21457;&#36865;&#36923;&#36753;&#65292;&#24182;&#35843;&#29992; <code>mail()<\/code> &#26041;&#27861;&#26469;&#21457;&#36865;&#37038;&#20214;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse AppModelsUser;\nuse IlluminateSupportFacadesMail;\n\nclass UserController extends Controller\n{\n    public function sendWelcomeEmail(User $user)\n    {\n        $email = new Email(['subject' =&gt; 'Welcome to our website', 'body' =&gt; 'Hello, ' . $user-&gt;name . '! Welcome to our site.']);\n        Mail::to($user)-&gt;send($email);\n    }\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#20363;&#23376;&#20013;&#65292;&#25105;&#20204;&#21019;&#24314;&#20102;&#19968;&#20010;&#21517;&#20026; <code>UserController<\/code> &#30340;&#25511;&#21046;&#22120;&#65292;&#20854;&#20013;&#26377;&#19968;&#20010;&#21517;&#20026; <code>sendWelcomeEmail<\/code> &#30340;&#26041;&#27861;&#12290;&#36825;&#20010;&#26041;&#27861;&#25509;&#25910;&#19968;&#20010; <code>$user<\/code> &#21442;&#25968;&#65292;&#24182;&#21019;&#24314;&#19968;&#20010; <code>Email<\/code> &#23454;&#20363;&#12290;&#28982;&#21518;&#65292;&#23427;&#20351;&#29992; <code>Mail::to()<\/code> &#26041;&#27861;&#21521;&#25351;&#23450;&#29992;&#25143;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#12290;<\/p>\n<h3>&#31034;&#20363;&#20195;&#30721;&#31034;&#20363;<\/h3>\n<p>&#20551;&#35774;&#24744;&#24819;&#21457;&#36865;&#19968;&#23553;&#24102;&#26377;&#29305;&#23450;&#20027;&#39064;&#21644;&#28040;&#24687;&#20307;&#30340;&#27426;&#36814;&#37038;&#20214;&#65292;&#24744;&#21487;&#20197;&#25353;&#29031;&#20197;&#19979;&#26041;&#24335;&#25805;&#20316;&#65306;<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse AppModelsUser;\nuse IlluminateSupportFacadesMail;\n\nclass UserController extends Controller\n{\n    public function sendWelcomeEmail(User $user)\n    {\n        $email = new Email([\n            'subject' =&gt; 'Welcome to our website',\n            'body' =&gt; 'Hello, ' . $user-&gt;name . '! Welcome to our site.',\n        ]);\n\n        Mail::to($user)-&gt;send($email);\n    }\n}<\/code><\/pre>\n<p>&#36825;&#23558;&#21019;&#24314;&#19968;&#20010;&#21253;&#21547;&#29305;&#23450;&#20027;&#39064;&#21644;&#28040;&#24687;&#20307;&#30340;&#27426;&#36814;&#37038;&#20214;&#65292;&#24182;&#23558;&#20854;&#21457;&#36865;&#21040;&#25351;&#23450;&#29992;&#25143;&#30340;&#37038;&#31665;&#22320;&#22336;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312;Laravel&#20013;&#21457;&#36865;&#30005;&#23376;&#37038;&#20214;&#26159;&#19968;&#31181;&#24120;&#35265;&#30340;&#38656;&#038;#277..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-849","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/849","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=849"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=849"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=849"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}