Esempio n. 1
0
 /**
  * Create a new message instance.
  *
  * @return \Illuminate\Mail\Message
  */
 protected function createMessage()
 {
     // Get the DKIM selector.
     $selector = Config::get('mail.dkim.selector');
     // If we have a DKIM selector, then add the signing.
     if (!empty($selector)) {
         // Use the signed message with support for signing.
         // So long as there is a selector we will do this, even if a private
         // key is not set. This is handy if the application wants to add its
         // own signatures later.
         $message = new Message(new Swift_SignedMessage());
         // Get the key and domain name.
         // Ideally these would be specific to the selector, with the selector being
         // chosen according to the domain of the sending address. At this stage we do
         // not know what the final sending addressis going to be.
         $private_key = Config::get('mail.dkim.private_key');
         $domain_name = Config::get('mail.dkim.domain_name');
         if (!empty($private_key) && !empty($domain_name)) {
             // Do the DKIM signing.
             $dkim_signer = new Swift_Signers_DKIMSigner($private_key, $domain_name, $selector);
             // Issue #1: ignore certain headers that cause end-to-end failure.
             $dkim_signer->ignoreHeader('Return-Path');
             $dkim_signer->ignoreHeader('Bcc');
             $dkim_signer->ignoreHeader('DKIM-Signature');
             $dkim_signer->ignoreHeader('Received');
             $dkim_signer->ignoreHeader('Comments');
             $dkim_signer->ignoreHeader('Keywords');
             $dkim_signer->ignoreHeader('Resent-Bcc');
             $message->attachSigner($dkim_signer);
         }
     } else {
         // Non-signed message.
         $message = new Message(new Swift_Message());
     }
     // If a global from address has been specified we will set it on every message
     // instances so the developer does not have to repeat themselves every time
     // they create a new message. We will just go ahead and push the address.
     if (isset($this->from['address'])) {
         $message->from($this->from['address'], $this->from['name']);
     }
     return $message;
 }