Laravel 5.4无法从选项设置电子邮件

时间:2017-07-07 21:53:58

标签: php laravel email laravel-5.4

我在文档中提到的config / mail.php中使用全局from选项,以便对我发送的所有电子邮件使用相同的地址。这按预期工作。但是,当我尝试在Mailable类的构建函数中显式设置from地址时,仍然使用全局地址。有什么我可能会遗漏,所有这些似乎直接来自5.4的文档。我的Mailable类如下($ this->电子邮件属性中肯定有值,因为它在回显时显示):

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

class ContactMessage extends Mailable
{
    use Queueable, SerializesModels;

    public $user_email;
    public $user_message;


    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($user_email, $user_message)
    {
        $this->user_email = $user_email;
        $this->user_message = $user_message;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
//        echo '<pre>';
//        echo var_export($this->user_email, true);
//        echo '<br/><br/>';
//        echo var_export($this->message, true);
//        die;

        return $this->from($this->user_email)
                ->subject('Contact Message')
                ->view('mail.contactMessage');
    }

}

1 个答案:

答案 0 :(得分:0)

您的代码是正确的。事实上,设置From标头是大多数MTA中的特权操作。

如果您在本地计算机上使用sendmailpostfix或其他类似设备,通常可以设置发件人。但是,在第三方使用经过身份验证的帐户时,通常不能。

要使用第三方更改From标头,您需要使用与From匹配的经过身份验证的帐户(例如,使用GMail),或者在您的帐户中配置允许的From(例如,在AWS SES上)。