Laravel没有从地址发送


Laravel not sending from address

我想在用户浏览页面时将Email发送给我的Email。
我成功地完成了。

我的代码是这样的:

Route::any('contact_us/send', function() {
    return Mail::send('contactus.send', ['name' => 'Advaith'], function($message) {
        $name = $_POST['name']; 
        $from = $_POST['email'];
        $message->to('itsme@gmail.com')->from($from, $name)->subject('Feed Back'); 
        //itsme@gmail.com is used in this question only
    });
});

此代码将电子邮件发送到我的帐户。

但它没有发送发件人的姓名和电子邮件($name$from)
我甚至尝试改变变量,并给它一个示例电子邮件。

我的.env文件看起来像这样:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=itsme@gmail.com
MAIL_PASSWORD=**********
MAIL_ENCRYPTION=tls

我的config/mail.php文件看起来像这样:

'driver' => env('MAIL_DRIVER', 'smtp'),
'host' => env('MAIL_HOST', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => [
    'address' => 'hello@example.com',
    'name' => 'Example',
],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

发送数据的表单是这样的:

<form class="ad-form col-md-12" method="POST" action="/contact_us/send">
    {{ csrf_field() }}
    <input placeholder="Name...*" type="text" name="name" required="required">
    <br>
    <input placeholder="Email...*" type="email" name="email" required="required">
    <br>
    <textarea required="required" placeholder="Your valuable feedback...*" name="comment" rows="5" cols="40"></textarea>
    <br>
    <input type="submit" name="submit" value="Send">
</form>

我的contactus/send.blade.php文件看起来像这样:

<div style="border: 2px solid orange; padding: 30px;">
    <div>From: <b>{{ $_POST['name'] }}</b></div>
    <div>From-Email: <b>{{ $_POST['email'] }}</b><hr></div><br>
    <div style="text-align: justify;"><strong>{{ $_POST['comment'] }}</strong></div>
</div>

请告诉我为什么没有发送发件人地址

并且请告诉我邮件发送后如何跳转到另一个页面。

这个问题不是Laravel的问题。你在评论中说,这封邮件是你发给自己的。这是由于gmail不允许使用随机地址,以防止垃圾邮件。

你必须注册备用地址才能使用它们作为你的"从地址",否则gmail会把它改回默认地址。

参考文献见此处或此处

也有一些SO资源处理这个问题:

如何在使用gmail smtp服务器时更改from-address,

当使用Gmail的SMTP,你可以设置一个不同的"从"地址吗?

在c#中通过gmail发送邮件时更改发件人地址