2017-07-07 62 views
1

的電子郵件我正在使用config/mail.php中的global選項,如文檔中所述,使用相同的地址發送我的所有電子郵件。這按預期工作。但是,當我嘗試在Mailable類的構建函數中顯式設置發件人地址時,仍然使用全局地址。有什麼我可能會丟失,所有這些似乎直接來自5.4的文檔。我可郵寄類如下(肯定是有,因爲它呼應時顯示在$這個 - >郵件屬性的值):Laravel 5.4無法設置來自選項

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'); 
    } 

} 
+0

代碼看起來正確。把'$ this->從($ this-> email)'改成一個有效的硬編碼的字符串 - 比如'$ this-> from('[email protected]')',看看它是否有效:我認爲'email'對象變量對'Mailable'可能有特殊的含義。此外,請包含所產生電子郵件的完整電子郵件標題。 – bishop

+0

更新的屬性,如果發生衝突,以'user_'作爲前綴。相同的結果。使用'$ this-> from('[email protected]')',結果相同。尋找出口標題的方式。 – commanderZiltoid

+0

有些奇怪的事情正在發生。如果我從config/mail.php文件中刪除默認的電子郵件地址,它仍然被使用。進一步調查。 – commanderZiltoid

回答

0

你的代碼是正確的。事情是,設置From標頭是大多數MTA中的特權操作。

如果在本地機器上使用sendmail,postfix或其他類似符號,通常可以設置From。但是,在第三方使用經過身份驗證的帳戶時,通常不能。

要更改From標題與第三方,您需要使用與您的From(例如與GMail)相匹配的經過身份驗證的帳戶,或配置帳戶中允許的From(例如在AWS SES)。