public function send(MailMessage $mailMessage) { $from = $mailMessage->getFrom(); config(['mail.host' => $this->host, 'mail.username' => $this->username, 'mail.password' => $this->password, 'mail.port' => $this->port, 'mail.encryption' => $this->protocol, 'mail.from' => ['address' => $from['email'], 'name' => $from['name']]]); $attempt = SenderAttempt::forceCreate(['sender_id' => $this->id, 'list_member_id' => $mailMessage->id, 'status' => 'pendding']); $status = Mail::raw($mailMessage->getMessage(), function ($message) use($mailMessage) { $to = $mailMessage->getDestinatary(); $message->to($to['email'], $to['name']); $message->subject($mailMessage->getSubject()); $message->setBody($mailMessage->getMessage(), 'text/html'); //$message->from('*****@*****.**', 'Telmo Riofrio'); //$message->sender('*****@*****.**', 'Telmo Riofrio'); //$message->cc($address, $name = null); //$message->bcc($address, $name = null); $message->replyTo('*****@*****.**', 'Telmo Riofrio replicar'); //$message->priority($level); //$message->attach($pathToFile, array $options = []); // Attach a file from a raw $data string... //$message->attachData($data, $name, array $options = []); // Get the underlying SwiftMailer message instance... //$message->getSwiftMessage(); }); $status ? $mailMessage->complete() : $mailMessage->failure(); $attempt->status = 'ok'; $attempt->save(); return $status; }
/** * @return \yii\db\ActiveQuery */ public function getMailMessages() { return $this->hasMany(MailMessage::className(), ['author_id' => 'id']); }