Laravel 5以联系方式发送邮件

时间:2016-03-21 08:04:43

标签: laravel laravel-5 laravel-5.1

我使用Laravel 5.1并希望向页面管理员发送包含联系表单内容的邮件。

在我的.env文件中,我添加了以下几行:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=admintest@gmail.com
MAIL_PASSWORD=adminpassword
MAIL_ENCRYPTION=tls

在我的控制器中,我有以下内容:

 Mail::send('Site::email', ['contactObject' => $contactObject], function ($message) use ($contactObject) {
        $message->from($contactObject->email, $contactObject->vorname)->subject('New contact!');

        $message->to('admintest@gmail.com');
    });

$ contactObject ==包含从用户

填写的表单

期望的结果: 当admintest@gmail.com收到电子邮件时,邮件的发件人应为$ contactObject-> email

实际结果: 当admintest@gmail.com收到电子邮件时,邮件的发件人是admintest@gmail.com

任何想法出了什么问题?谢谢

3 个答案:

答案 0 :(得分:1)

试试这个:

在Live服务器中,您无需配置任何类型的邮件服务。

你必须使用它:

MAIL_DRIVER=mail

删除此代码:

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=admintest@gmail.com
MAIL_PASSWORD=adminpassword
MAIL_ENCRYPTION=tls

答案 1 :(得分:1)

您必须使用.env文件:

MAIL_DRIVER=mail
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xyz@gmail.com
MAIL_PASSWORD=yourpassword
MAIL_ENCRYPTION=tls

更改.env文件后,重启服务或使用命令 php artisan config:cache php artisan config:clear

答案 2 :(得分:0)

您是否在配置中配置了全局发件人地址?

具体来说:https://github.com/laravel/laravel/blob/master/config/mail.php#L49

您可能已经设置了它并且它只是使用它,将这些值设为空白应该让您覆盖它。

如果不这样做,因为您使用Gmail向Gmail发送电子邮件,它可能不会让您欺骗,并且确实是他们的安全功能。