/** * @param \Swift_Events_SendEvent $evt */ public function beforeSendPerformed(\Swift_Events_SendEvent $evt) { $message = $evt->getMessage(); $this->convert($message); $children = $message->getChildren(); array_walk($children, array($this, 'convert')); }
/** * Invoked immediately before the Message is sent. * * @param Swift_Events_SendEvent $evt */ public function beforeSendPerformed(Swift_Events_SendEvent $evt) { $this->messages[] = $message = clone $evt->getMessage(); $to = null === $message->getTo() ? '' : implode(', ', array_keys($message->getTo())); $this->dispatcher->notify(new sfEvent($this, 'application.log', array(sprintf('Sending email "%s" to "%s"', $message->getSubject(), $to)))); }
public function sendPerformed(\Swift_Events_SendEvent $event) { // If this was sent through SES, retrieve the data if (config('mail.driver') == 'ses') { $message = $event->getMessage(); $this->updateSesMessageId($message); } }
/** * Gestion des messages apres leur envoi * @param Swift_Events_SendEvent $event [description] * @return [type] [description] */ public function sendPerformed(\Swift_Events_SendEvent $evt) { if ($evt->getResult() === \Swift_Events_SendEvent::RESULT_SUCCESS && $this->enabled == true) { // Création de l'activity $activity = $this->createActivity($evt->getMessage()); $this->dm->persist($activity); $this->dm->flush(); } }
/** * {@inheritdoc} */ public function beforeSendPerformed(\Swift_Events_SendEvent $event) { $message = $event->getMessage(); if (!$this->isEnabled() || !$message instanceof \Swift_Message || in_array($message->getId(), $this->performed)) { return; } $signature = new \Swift_Signers_DKIMSigner($this->getPrivateKey(), $this->domain, $this->selector); $message->attachSigner($signature); $this->performed[] = $message->getId(); }
/** * Invoked immediately after the Message is sent. * * @param Swift_Events_SendEvent $evt */ public function sendPerformed(Swift_Events_SendEvent $evt) { $message = $evt->getMessage(); // restore original headers $headers = $message->getHeaders(); if ($headers->has('X-Swift-Return-Path')) { $message->setReturnPath($headers->get('X-Swift-Return-Path')->getAddress()); $headers->removeAll('X-Swift-Return-Path'); } }
/** * @param \Swift_Events_SendEvent $evt */ public function beforeSendPerformed(\Swift_Events_SendEvent $evt) { $message = $evt->getMessage(); if ($message->getContentType() === 'text/html' || $message->getContentType() === 'multipart/alternative' && $message->getBody() || $message->getContentType() === 'multipart/mixed' && $message->getBody()) { $message->setBody($this->converter->convert($message->getBody(), $this->css)); } foreach ($message->getChildren() as $part) { if (strpos($part->getContentType(), 'text/html') === 0) { $part->setBody($this->converter->convert($part->getBody(), $this->css)); } } }
/** * Invoked immediately after the Message is sent. * * @param \Swift_Events_SendEvent $evt */ public function sendPerformed(\Swift_Events_SendEvent $evt) { $result = $evt->getResult(); $failed_recipients = $evt->getFailedRecipients(); $message = $evt->getMessage(); if ($result === \Swift_Events_SendEvent::RESULT_SUCCESS) { $level = $this->levels['sendPerformed.SUCCESS']; } else { $level = $this->levels['sendPerformed.NOT_SUCCESS']; } $this->log($level, 'MESSAGE (sendPerformed): ', array('result' => $result, 'failed_recipients' => $failed_recipients, 'message' => $message->toString())); }
/** * Inline the CSS before an email is sent. * * @param \Swift_Events_SendEvent $evt */ public function beforeSendPerformed(\Swift_Events_SendEvent $evt) { $message = $evt->getMessage(); $properTypes = ['text/html', 'multipart/alternative', 'multipart/mixed']; if ($message->getBody() && in_array($message->getContentType(), $properTypes)) { $this->inliner->setHtml($message->getBody()); $message->setBody($this->inliner->emogrify()); } foreach ($message->getChildren() as $part) { if (strpos($part->getContentType(), 'text/html') === 0) { $this->inliner->setHtml($part->getBody()); $message->setBody($this->inliner->emogrify()); } } }
/** * @param Swift_Events_SendEvent $evt */ public function beforeSendPerformed(\Swift_Events_SendEvent $evt) { $message = $evt->getMessage(); $converter = new CssToInlineStyles(); $converter->setEncoding($message->getCharset()); $converter->setUseInlineStylesBlock(); $converter->setCleanup(); if ($message->getContentType() === 'text/html' || $message->getContentType() === 'multipart/alternative' && $message->getBody() || $message->getContentType() === 'multipart/mixed' && $message->getBody()) { $converter->setHTML($message->getBody()); $message->setBody($converter->convert()); } foreach ($message->getChildren() as $part) { if (strpos($part->getContentType(), 'text/html') === 0) { $converter->setHTML($part->getBody()); $part->setBody($converter->convert()); } } }
/** * {@inheritdoc} */ public function beforeSendPerformed(\Swift_Events_SendEvent $event) { $message = $event->getMessage(); if (!$this->isEnabled() || !$message instanceof \Swift_Message || in_array($message->getId(), $this->performed) || null === $message->getBody()) { return; } $dom = new \DOMDocument('1.0', 'utf-8'); $internalErrors = libxml_use_internal_errors(true); $dom->loadHTML($message->getBody()); libxml_use_internal_errors($internalErrors); $xpath = new \DOMXPath($dom); $nodes = $xpath->query('//img/@src'); $images = array(); foreach ($nodes as $node) { $this->embedImage($message, $node, $images); } $message->setBody($dom->saveHTML(), 'text/html'); $this->performed[] = $message->getId(); }
/** * Invoked immediately after the Message is sent. * * @param Swift_Events_SendEvent $evt */ public function sendPerformed(Swift_Events_SendEvent $evt) { $message = $evt->getMessage(); $message->toByteStream($this); }
/** * Invoked immediately before the Message is sent. * * @param \Swift_Events_SendEvent $event */ public function beforeSendPerformed(\Swift_Events_SendEvent $event) { $event->getMessage()->setFrom($this->address, $this->name); }
/** * Called just before Swift sends a message. * We perform operations on the message here. * @param Swift_Events_SendEvent The event object for sending a message */ public function beforeSendPerformed(Swift_Events_SendEvent $e) { $message = $e->getMessage(); $this->recursiveRestore($message, $this->store); //3.3.3 bugfix $recipients = $e->getRecipients(); $to = array_keys($recipients->getTo()); if (count($to) > 0) { $to = $to[0]; } else { return; } $replacements = (array) $this->replacements->getReplacementsFor($to); $this->store = array("headers" => array(), "body" => false, "children" => array()); $this->recursiveReplace($message, $replacements, $this->store); }
public function testMultiArray() { $transport = \Swift_MailTransport::newInstance(); $message = \Swift_Message::newInstance('Wonderful Subject')->setFrom(array('*****@*****.**' => 'John Doe'))->setTo(array('*****@*****.**', '*****@*****.**')); $message->setBody('Here is the message itself'); $oLooseAttachment = \Swift_Attachment::newInstance('this an none-test document', 'Invoice-2011-848.txt', 'plain/text'); $message->attach($oLooseAttachment); $sendEvent = new \Swift_Events_SendEvent($transport, $message); $replacements = array('*****@*****.**' => array(\Swift_Attachment::newInstance('this an test document', 'Invoice-2011-4342.txt', 'plain/text')), '*****@*****.**' => array(\Swift_Attachment::newInstance('this an none-test document', 'Invoice-2011-8480.txt', 'plain/text'), array('data' => 'this an none-test2 document', 'filename' => 'Invoice-2011-8580.txt'))); $mailDecorator = new AttachmentDecorator($replacements); foreach ($replacements as $email => $msgReplacements) { $sendEvent->getMessage()->setTo($email); $mailDecorator->beforeSendPerformed($sendEvent); $message = $sendEvent->getMessage(); $this->assertEquals('Here is the message itself', trim($message->getBody())); $children = (array) $message->getChildren(); $attachments = array(); foreach ($children as $child) { if (\Swift_Mime_MimeEntity::LEVEL_MIXED === $child->getNestingLevel() && 'Invoice-2011-848.txt' == $child->getFilename()) { continue; } if (\Swift_Mime_MimeEntity::LEVEL_MIXED === $child->getNestingLevel()) { $attachments[] = $child; } } $this->assertEquals($attachments, $attachments); $mailDecorator->sendPerformed($sendEvent); $children = (array) $message->getChildren(); // Check to make sure the original Attachment is still there foreach ($children as $child) { if (\Swift_Mime_MimeEntity::LEVEL_MIXED === $child->getNestingLevel()) { $this->assertEquals($oLooseAttachment->toString(), $child->toString()); } } } }
public function beforeSendPerformed(Swift_Events_SendEvent $event) { $this->logger->add(sprintf("Sending Mail:\n %s\n", $event->getMessage())); }
/** * {@inheritdoc} */ public function sendPerformed(\Swift_Events_SendEvent $evt) { $contents = $this->findAll(); $contents[] = $evt->getMessage(); file_put_contents($this->filename, serialize($contents)); }
/** * Invoked immediately after the Message is sent. * * @param \Swift_Events_SendEvent $sendEvent */ public function sendPerformed(\Swift_Events_SendEvent $sendEvent) { $this->restoreMessage($sendEvent->getMessage()); }
/** * Invoked immediately before the Message is sent. * * @param \Swift_Events_SendEvent $evt */ public function beforeSendPerformed(\Swift_Events_SendEvent $evt) { $this->sendEvent = new TimerEvent('email.send'); $data = ['headers' => $evt->getMessage()->getHeaders()->toString(), 'subject' => $evt->getMessage()->getSubject(), 'size' => strlen($evt->getMessage()->toString())]; $this->sendEvent->addData($data); }
/** * Apply whitelist and blacklist to "to", "cc" and "bcc" * * @param Swift_Events_SendEvent $evt */ public function beforeSendPerformed(\Swift_Events_SendEvent $evt) { $message = $evt->getMessage(); $modifier = $this->modifier; $modifier($message); }
/** * Swift's SendEvent listener. * Invoked when Swift sends a message * @param Swift_Events_SendEvent The event information * @throws Swift_ConnectionException If mail() returns false */ public function sendPerformed(Swift_Events_SendEvent $e) { $message = $e->getMessage(); $recipients = $e->getRecipients(); $to = array(); foreach ($recipients->getTo() as $addr) { if ($this->isWindows()) { $to[] = substr($addr->build(true), 1, -1); } else { $to[] = $addr->build(); } } $to = implode(", ", $to); $bcc_orig = $message->headers->has("Bcc") ? $message->headers->get("Bcc") : null; $subject_orig = $message->headers->has("Subject") ? $message->headers->get("Subject") : null; $to_orig = $message->headers->has("To") ? $message->headers->get("To") : null; $bcc = array(); foreach ($recipients->getBcc() as $addr) { $bcc[] = $addr->build(); } if (!empty($bcc)) { $message->headers->set("Bcc", $bcc); } $bcc = null; $body_data = $message->buildData(); $message_body = $body_data->readFull(); $subject_enc = $message->headers->has("Subject") ? $message->headers->getEncoded("Subject") : ""; $message->headers->set("To", null); $message->headers->set("Subject", null); $sender = $e->getSender(); $this->returnPath = $sender->build(); if ($message->headers->has("Return-Path")) { $this->returnPath = $message->headers->get("Return-Path"); } if (preg_match("~<([^>]+)>[^>]*\$~", $this->returnPath, $matches)) { $this->returnPath = $matches[1]; } $this->doMail($to, $subject_enc, $message_body, $message->headers, sprintf($this->getAdditionalParams(), $this->returnPath)); $message->setLE($this->oldLE); $message->headers->set("To", $to_orig); $message->headers->set("Subject", $subject_orig); $message->headers->set("Bcc", $bcc_orig); }
/** * Swift's BeforeSendListener required method. * Runs just before Swift sends a message. Here is where we do all the replacements. * @param Swift_Events_SendEvent */ public function beforeSendPerformed(Swift_Events_SendEvent $e) { $this->message = $e->getMessage(); foreach ($this->message->listChildren() as $id) { $part = $this->message->getChild($id); $body = $part->getData(); if (!is_string($body) || substr(strtolower($part->getContentType()), 0, 5) != "text/") { continue; } foreach ($this->definitions as $tag_name => $def) { if ($this->getEmbedRemoteFiles()) { $re = $this->getRemoteFilePattern($tag_name); $body = preg_replace_callback($re, array($this, "embedRemoteFile"), $body); } if ($this->getEmbedLocalFiles()) { $re = $this->getLocalFilePattern($tag_name); $body = preg_replace_callback($re, array($this, "embedLocalFile"), $body); } } $part->setData($body); } }
/** * Called just after Swift sends a message. * We restore the message here. * @param Swift_Events_SendEvent The event object for sending a message */ public function sendPerformed(Swift_Events_SendEvent $e) { $message = $e->getMessage(); $this->recursiveRestore($message, $this->store); $this->store = null; }
/** * Invoked immediately after the Message is sent. * * @param Swift_Events_SendEvent $evt */ public function sendPerformed(Swift_Events_SendEvent $evt) { $this->_restoreMessage($evt->getMessage()); }
/** * Invoked immediately before the Message is sent. * * @param Swift_Events_SendEvent $evt */ public function beforeSendPerformed(Swift_Events_SendEvent $evt) { $this->messages[] = clone $evt->getMessage(); }
public function testAttachedHTML() { $templating = $this->getTwigInstance(); $transport = \Swift_MailTransport::newInstance(); $message = \Swift_Message::newInstance('Wonderful Subject')->setFrom(array('*****@*****.**' => 'John Doe'))->setTo(array('*****@*****.**', '*****@*****.**')); $message->attach(\Swift_Attachment::fromPath(__DIR__ . '/Fixtures/TestMsg2.twig', 'text/html')); $sendEvent = new \Swift_Events_SendEvent($transport, $message); $replacements = array('*****@*****.**' => array('name' => 'John', 'gender' => 'Sir', 'date' => '2010-08-25 15:28', 'lang' => 'en', 'date2' => 'Wednesday, August 25, 2010 3:28 PM'), '*****@*****.**' => array('name' => 'Piet', 'gender' => 'Heer', 'date' => '2010-08-25 14:28', 'lang' => 'nl', 'date2' => 'woensdag 25 augustus 2010 14:28')); $mailDecorator = new TemplateDecorator($templating, $replacements, array('html' => 'TestMsg2.twig')); foreach ($replacements as $sEmail => $msgReplacements) { $sendEvent->getMessage()->setTo($sEmail); $mailDecorator->beforeSendPerformed($sendEvent); $message = $sendEvent->getMessage(); $children = (array) $message->getChildren(); foreach ($children as $child) { if ('text/html' == $child->getContentType() && \Swift_Mime_MimeEntity::LEVEL_ALTERNATIVE === $child->getNestingLevel()) { $this->assertEquals('<p>Geachte ' . $msgReplacements['gender'] . ' ' . $msgReplacements['name'] . ',</p><p>Currentdate: ' . $msgReplacements['date2'] . '</p>', $child->getBody()); } elseif ('text/html' == $child->getContentType() && \Swift_Mime_MimeEntity::LEVEL_MIXED === $child->getNestingLevel()) { $headers = $child->getHeaders(); if ($headers->has('Content-Disposition')) { $orig = 'Content-Type: text/html; name=TestMsg2.twig Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=TestMsg2.twig PHA+R2VhY2h0ZSB7eyBnZW5kZXIgfX0ge3sgbmFtZSB9fSw8L3A+PHA+Q3VycmVudGRhdGU6IHt7 IGRhdGUgfCBsb2NhbGl6ZWRkYXRlKCAnZnVsbCcsICdzaG9ydCcsIGxhbmcgKSB9fTwvcD4='; // The $orig does not have \r (since this file is UNIX encoded) $sChild = str_replace("\r", '', trim($child->toString())); $this->assertEquals($orig, $sChild); } } } $mailDecorator->sendPerformed($sendEvent); } }
/** * Invoked immediately after the Message is sent. * @param Swift_Events_SendEvent $evt */ public function sendPerformed(Swift_Events_SendEvent $evt) { $message = $evt->getMessage(); $failures = array_flip($evt->getFailedRecipients()); foreach ((array) $message->getTo() as $address => $null) { $this->_reporter->notify( $message, $address, (array_key_exists($address, $failures) ? Swift_Plugins_Reporter::RESULT_FAIL : Swift_Plugins_Reporter::RESULT_PASS) ); } foreach ((array) $message->getCc() as $address => $null) { $this->_reporter->notify( $message, $address, (array_key_exists($address, $failures) ? Swift_Plugins_Reporter::RESULT_FAIL : Swift_Plugins_Reporter::RESULT_PASS) ); } foreach ((array) $message->getBcc() as $address => $null) { $this->_reporter->notify( $message, $address, (array_key_exists($address, $failures) ? Swift_Plugins_Reporter::RESULT_FAIL : Swift_Plugins_Reporter::RESULT_PASS) ); } }