yii\mail\BaseMailer::send PHP Method

send() public method

This method will log a message about the email being sent. If [[useFileTransport]] is true, it will save the email as a file under [[fileTransportPath]]. Otherwise, it will call BaseMailer::sendMessage to send the email to its recipient(s). Child classes should implement BaseMailer::sendMessage with the actual email sending logic.
public send ( yii\mail\MessageInterface $message ) : boolean
$message yii\mail\MessageInterface email message instance to be sent
return boolean whether the message has been sent successfully
    public function send($message)
    {
        if (!$this->beforeSend($message)) {
            return false;
        }
        $address = $message->getTo();
        if (is_array($address)) {
            $address = implode(', ', array_keys($address));
        }
        Yii::info('Sending email "' . $message->getSubject() . '" to "' . $address . '"', __METHOD__);
        if ($this->useFileTransport) {
            $isSuccessful = $this->saveMessage($message);
        } else {
            $isSuccessful = $this->sendMessage($message);
        }
        $this->afterSend($message, $isSuccessful);
        return $isSuccessful;
    }

Usage Example

Example #1
0
 /**
  * Send email
  * @param int $type email type
  * @param array $params email views params
  */
 public function sendMessage($type, $params)
 {
     if ($this->mailer === null) {
         /** @var yii\swiftmailer\Mailer mailer */
         $this->mailer = Yii::$app->mailer;
         $this->mailer->viewPath = $this->getViewPath() . '/mails';
         $this->mailer->getView()->theme = Yii::$app->view->theme;
     }
     switch ($type) {
         case 'register':
             if ($this->enableRegistrationEmail) {
                 $message = $this->mailer->compose($this->mailViews[$type], $params);
                 $message->setSubject(Yii::t('activeuser_general', 'Thank you for register on site'));
             }
             break;
         case 'confirm':
             if ($this->enableConfirmation) {
                 $message = $this->mailer->compose($this->mailViews[$type], $params);
                 $message->setSubject(Yii::t('activeuser_general', 'Email address confirmation needed'));
             }
             break;
         case 'restore':
             if ($this->enableConfirmation) {
                 $message = $this->mailer->compose($this->mailViews[$type], $params);
                 $message->setSubject(Yii::t('activeuser_general', 'Password restore request'));
             }
             break;
         case 'passchanged':
             if ($this->enableConfirmation) {
                 $message = $this->mailer->compose($this->mailViews[$type], $params);
                 $message->setSubject(Yii::t('activeuser_general', 'Password was changed'));
             }
             break;
         case 'block':
             $message = $this->mailer->compose($this->mailViews[$type], $params);
             $message->setSubject(Yii::t('activeuser_general', 'You are blocked'));
             break;
         case 'unblock':
             $message = $this->mailer->compose($this->mailViews[$type], $params);
             $message->setSubject(Yii::t('activeuser_general', 'You are unblocked'));
             break;
     }
     if (!empty($message)) {
         $user = $params['user'];
         if ($this->sender === null) {
             $this->sender = isset(Yii::$app->params['adminEmail']) ? Yii::$app->params['adminEmail'] : 'no-reply@' . (empty($_SERVER['HTTP_HOST']) ? 'example.com' : $_SERVER['HTTP_HOST']);
         }
         $message->setTo(empty($user->name) ? $user->email : [$user->email => $user->name]);
         $message->setFrom($this->sender);
         $this->mailer->send($message);
     }
 }