public function testSendResponseWithSslOptionFalse() { $sendgrid = new SendGrid("foo", "bar", array("switch_off_ssl_verification" => true)); $email = new SendGrid\Email(); $email->setFrom('*****@*****.**')->setSubject('foobar subject')->setText('foobar text')->addTo('*****@*****.**')->addAttachment('./text'); $response = $sendgrid->send($email); $this->assertEquals("Bad username / password", $response->errors[0]); }
public function testSetFrom() { $email = new SendGrid\Email(); $email->setFrom("*****@*****.**"); $email->setFromName("John Doe"); $this->assertEquals("*****@*****.**", $email->getFrom()); $this->assertEquals(array("*****@*****.**" => "John Doe"), $email->getFrom(true)); }
public function testConstruction() { $sendgrid = new SendGrid("foo", "bar"); $smtp = $sendgrid->smtp; $this->assertEquals(new SendGrid\Smtp("foo", "bar"), $smtp); $message = new SendGrid\Email(); $message->setFrom('*****@*****.**')->setFromName('John Doe')->setSubject('foobar subject')->setText('foobar text')->addTo('*****@*****.**')->addAttachment("mynewattachment.jpg"); $this->assertEquals(get_class($smtp), 'SendGrid\\Smtp'); $this->setExpectedException('SendGrid\\AuthException'); $smtp->send($message); }
/** * Test sending a request with bad credentials and SSL verification off. */ public function testSendResponseWithSslOptionFalse() { $sendgrid = new \SendGrid\Client('token123456789', ['switch_off_ssl_verification' => TRUE]); $email = new \SendGrid\Email(); $email->setFrom('*****@*****.**')->setSubject('foobar subject')->setText('foobar text')->addTo('*****@*****.**')->addAttachment('./tests/text'); try { $response = $sendgrid->send($email); } catch (\GuzzleHttp\Exception\ClientException $e) { $response = $e->getResponse(); $responseBodyAsString = $response->getBody()->getContents(); } $this->assertContains('The provided authorization grant is invalid, expired, or revoked', $responseBodyAsString); }
function sendPlain($to, $from, $subject, $plainContent, $attachedFiles = false, $customheaders = false) { $mail = new SendGrid\Email(); $sendgrid = $this->instanciate(); $to = explode(',', $to); foreach ($to as $s1) { $mail->addTo(trim($s1)); } $mail->setFrom(trim($from)); $mail->setSubject($subject); $mail->setText($plainContent); $sendgrid->send($mail); }
public function deliver($message) { $sendgrid = new \SendGrid($this->username, $this->password, $this->options); $email = new \SendGrid\Email(); $to = $message->getTo(); if (is_array($to)) { foreach ($to as $rcpt) { $email->addTo($rcpt); } } else { $email->addTo($to); } $email->setFrom($this->from)->setFromName($this->from_name)->setSubject($message->getSubject())->setText($message->renderText())->setHtml($message->renderHtml()); $sendgrid->send($email); }
protected function sendEmail($to, $subj, $text, $html = null) { $email = new \SendGrid\Email(); $email->addCategory($subj); $email->addTo($to); $email->setFrom('*****@*****.**'); $email->setFromName('Edge conf'); $email->setSubject($subj); $email->setText($text); if ($html) { $emogrifier = new \Pelago\Emogrifier($html, file_get_contents(realpath(__DIR__ . '/../../../public/css/email.css'))); $email->setHtml($emogrifier->emogrify()); } $sendgrid = new \SendGrid($this->app->config->sendgrid->username, $this->app->config->sendgrid->password); $resp = $sendgrid->send($email); }
public function send(array $options) { $connection = $this->getConnection(); $email = new \SendGrid\Email(); $options = array_replace_recursive($this->defaults, $options); foreach ((array) $options['to'] as $to) { $email->addTo($to); } foreach ((array) $options['cc'] as $cc) { $email->addCc($cc); } foreach ((array) $options['bcc'] as $bcc) { $email->addBcc($bcc); } $email->setSubject($options['subject']); $email->setFrom($this->getFrom($options)); if (!empty($options['category'])) { $email->setCategory($options['category']); } if (!empty($options['categories'])) { $email->setCategories($options['categories']); } if (!empty($options['text'])) { $email->setText($options['text']); } if (!empty($options['html'])) { $email->setHtml($options['html']); } elseif (!empty($options['layout']) && !empty($options['data'])) { $path = $this->_app->basePath . '/mail/sendgrid/' . $options['layout'] . '.html'; if (!file_exists($path)) { $message = 'Layout "' . $options['layout'] . '" cannot be found in "/mail/sendgrid/".'; if ($this->_version == 2) { throw new \yii\web\NotFoundHttpException($message); } else { throw new \CHttpException(404, $message); } } $params = array('subject' => $options['subject']); foreach ($options['data'] as $key => $value) { $params['{{' . $key . '}}'] = $value; } $html = file_get_contents($path); $html = strtr($html, $params); $email->setHtml($html); } return $response = $connection->send($email); }
/** * {@inheritdoc} */ public function send(Swift_Mime_Message $message, &$failedRecipients = null) { $sendgrid = new \SendGrid($this->key); $email = new \SendGrid\Email(); list($from, $from_name) = $this->getFromAddresses($message); $email->setFrom($from); $email->setFromName($from_name); $email->setSubject($message->getSubject()); $email->setHtml($message->getBody()); $this->setTo($email, $message); $this->setCc($email, $message); $this->setBcc($email, $message); $this->setText($email, $message); $this->setAttachment($email, $message); $sendgrid->send($email); $this->deleteTempAttachments(); }
/** * Send Email * * Sends email to designated recipient with subject line and message. * * @param string $sub * @param string $msg * @return true * @throws Exception */ public function send($sub, $msg) { if (!is_string($sub) && !is_string($msg)) { throw new Exception("Email message or subject is not string: " . $sub . ' ' . $msg); } $email = new \SendGrid\Email(); $email->setFrom($this->config->get('fromEmail'))->setFromName('Research Botnet')->addTo($this->recipient)->setSubject('Research Botnet: ' . $sub)->setText($msg); try { $this->sendgrid->send($email); } catch (\SendGrid\Exception $e) { $errors = ''; foreach ($e->getErrors() as $er) { $errors .= $er . ', '; } throw new Exception("SendGrid send exception: " . $e->getCode() . ' ' . $errors); } return true; }
if ($roomNumber === NULL) { break; } array_push($classes, $roomNumber["roomNumber"]); } $outputJSON["roomNumbers"] = $classes; echo json_encode($outputJSON); return; }); $app->post('/sendEmail', function () { $to = $_POST['to']; $html = $_POST['html']; //perhaps add destination field for subjects $sendgrid = new SendGrid("oxymo", "compassstudios", array("turn_off_ssl_verification" => false)); $email = new SendGrid\Email(); $email->setFrom('*****@*****.**')->setSubject('SMU Nav Directions')->setHtml($html)->addTo($to); $response1 = $sendgrid->send($email); //echo $response1; //$this->assertEquals("Bad username / password", $response->errors[0]); echo "Success probably!"; }); $app->post('/getCoordinates', function () { global $mysqli; $bName = $_POST['buildingName']; $rName = $_POST['roomName']; $rNum = $_POST['roomNumber']; if ($rName != null) { //getCoordinates by room name $firstQuery = $mysqli->query("SELECT x, y, z FROM Coordinates WHERE idCoordinates=\n (SELECT Coordinates_idCoordinates FROM Location WHERE roomName='{$rName}')"); $firstResult = $firstQuery->fetch_assoc(); echo json_encode($firstResult);
echo $row['userhostName']; echo $row['userIP']; echo $row['userConnection']; echo $row['user_auth']; echo $row['user_reason']; echo $row['user_addInfo']; } //------------------------BINDING SendGrid to Bluemix (THIS IS OUR MAIL SERVER ON THE CLOUD (USING THE PHP cURL function-------------------------// $default_email = "*****@*****.**"; //these "requires" are downloaded from the composer (essential for SendGrid) require 'vendor/autoload.php'; //require 'vendor/sendgrid/sendgrid/lib/SendGrid.php'; if (filter_var($user_email, FILTER_VALIDATE_EMAIL)) { $services = getenv("VCAP_SERVICES"); $services_json = json_decode($services, true); if (isset($services_json["sendgrid"][0]["credentials"])) { $sendgrid_config = $services_json["sendgrid"][0]["credentials"]; $user = $sendgrid_config["username"]; $pass = $sendgrid_config["password"]; $url = $sendgrid_config["hostname"]; } $sendgrid = new SendGrid($user, $pass); $mail = new SendGrid\Email(); $mail->setFrom($default_email)->addTo($user_email)->setSubject("IBM Direct Proxy Confirmation")->setText("Just setup a cloud based email server called SendGrid (I binded an instance of it just like the mysql) on Bluemix. Whenever a user submits the form then a confirmation email will be sent to them. Thought I'd test it out and send it to you guys. This should be the result whenever a user submits the form. Hopefully it works!"); $response = $sendgrid->send($mail); echo 'Congrats your email has been sent!'; } else { echo 'Your e-mail is not valid. Please try again.'; } mysql_close(); //close the connection
====================================================*/ $sendgrid = new SendGrid($sg_username, $sg_password); $mail = new SendGrid\Email(); /* SEND MAIL / Replace the the address(es) in the setTo/setTos / function with the address(es) you're sending to. ==================================================== 'to' => $row[name].'<'.$row[email].'>', 'subject' => 'Reset Password', 'text' => 'Hello '.$row[name].', \n \n you just requested reset Password \n\n Please use the below URL to reset the password Or neglect .. note : url is valid for the next hour only... \n \n http://wolves-cafeteria.rhcloud.com/update-pass.php ' */ try { $mail->setFrom("*****@*****.**")->addTo($row[email])->setSubject('Reset Password')->setText('Hello ' . $row[name] . ', \\n \\n you just requested reset Password \\n\\n Please use the below URL to reset the password Or neglect .. note : url is valid for the next hour only... \\n \\n http://wolves-cafeteria.rhcloud.com/reset-password.php?code=' . $hash); $response = $sendgrid->send($mail); if (!$response) { throw new Exception("Did not receive response."); } else { if ($response->message && $response->message == "error") { throw new Exception("Received error: " . join(", ", $response->errors)); } else { // print_r($response); } } } catch (Exception $e) { var_export($e); } } else { echo "DB Error";
public function send() { //ARCHIVE THIS EMAIL if ($this->archive) { $rand = substr(md5(rand(0, 100) . date("dmyHis")), -10); //Set url in HTML body $this->HTMLBody = str_replace("[[ARCHIVE]]", LINK_BASE . "archive/" . $rand . ".html", $this->HTMLBody); } //Remove all variables ([[var]]) in template, if necessairy while (($startpos = strpos($this->HTMLBody, "[[")) !== false) { $endpos = strpos(substr($this->HTMLBody, $startpos), "]]") + $startpos; $temp = substr($this->HTMLBody, 0, $startpos) . substr($this->HTMLBody, $endpos + 2); $this->HTMLBody = $temp; } //Create the archived document if ($this->archive) { $doc = new Document("archive/", $rand . '.html'); if (STAGE == "test") { $string = "From: " . $this->from['name'] . ' (' . $this->from['email'] . ')<br/>To: ' . print_r($this->recipients, true) . "<br/>Subject: " . $this->subject . '<br/>'; } else { $string = ""; } $string .= $this->HTMLBody; $doc->write($string); } $email = new SendGrid\Email(); $email->setFrom($this->from["email"])->setFromName($this->from["name"])->setSubject($this->subject)->setText($this->plainBody)->setHTML($this->HTMLBody)->setHeaders($this->headers); //Add recipients foreach ($this->recipients as $recipient) { switch ($recipient["type"]) { case "to": default: $email->addTo($recipient['email'], $recipient["name"]); break; case "cc": $email->addCc($recipient['email'], $recipient["name"]); break; case "bcc": $email->addBcc($recipient['email'], $recipient["name"]); break; } } switch (STAGE) { case 'deploy': case 'test': $result = []; try { $result = $this->sendgrid->send($email); } catch (\SendGrid\Exception $e) { foreach ($e->getErrors() as $er) { trigger_error("A mail error occured: " . $e->getCode() . " - " . $er, E_USER_ERROR); } } $sent = array(); $rejected = array(); if ($result->code == 200) { array_push($sent, true); } else { array_push($rejected, $result->body->message); } return array("sent" => $sent, "rejected" => $rejected); break; case 'dev': default: //Display email in browser, don't send print_r($email); break; } }
/** * @param string|null $subject * @param string|null $template * @return bool * @throws \SendGrid\Exception */ public function send($subject = null, $template = null) { if (null !== $subject) { $this->setSubject($subject); } if (null !== $template) { $this->setTemplate($template); } $email = new \SendGrid\Email(); $email->setFrom($this->fromEmail); $email->setFromName($this->fromName); $email->setSubject($this->subject); $email->setHtml(' '); $email->setTemplateId($this->template); foreach ($this->recipients as $recipient) { /** * SendGrid API library requires to use 'addSmtpapiTo' method in case of many recipients. * On the other side, it does not allow to mix Smtpapi methods with non-Smtpapi methods, therefore, * original methods 'addBcc' and 'addCc' cannot be used here. */ $email->addSmtpapiTo($recipient->getEmail(), $recipient->getName()); } $email->setSubstitutions($this->getLocalVariables()); $email->setAttachments($this->attachments); $this->setSections($email); if (null !== $this->replyTo) { $email->setReplyTo($this->replyTo); } if (false === empty($this->headers)) { $email->setHeaders($this->headers); } try { $this->sendgrid->send($email); $this->cleanAttachments(); return true; } catch (\SendGrid\Exception $e) { $this->cleanAttachments(); throw $e; } }
/** * Repair data for send message * * @param array $args * * @return array */ function generate_postdata($args = array()) { $emailData = new SendGrid\Email(); $is_force = aem_get_option('aem_force_header', FALSE); $header = $this->process_header($args['headers']); /** * generate postFile */ $emailData->setSubject($args['subject']); $emailData->setText($args['subject']); //From email if (!$is_force && isset($header['from_name'])) { $from_email = $header['from_email']; } else { $from_email = AEM_Option()->get_from_email(); } $from_email = apply_filters('wp_mail_from', $from_email); $emailData->setFrom($from_email); //From name if (!$is_force && isset($header['from_name'])) { $from_name = $header['from_name']; } else { $from_name = AEM_Option()->get_from_name(); } $from_name = apply_filters('wp_mail_from_name', $from_name); $emailData->setFromName($from_name); //to if (!is_array($args['to'])) { $args['to'] = explode(',', $args['to']); } foreach ((array) $args['to'] as $recipient) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $recipient, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $recipient = $matches[2]; } } $emailData->addTo($recipient, $recipient_name); } catch (phpmailerException $e) { continue; } } //cc if (!empty($header['cc'])) { //header cc not empty if (empty($args['cc'])) { //arg cc empty, override agr cc $args['cc'] = $header['cc']; } else { //arg cc not empty if (!is_array($args['cc'])) { $args['cc'] = explode(',', $args['cc']); } //merge them $args['cc'] = array_merge($header['cc']); } } if (!empty($args['cc'])) { foreach ((array) $args['cc'] as $recipient) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $recipient, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $recipient = $matches[2]; } } $emailData->addCc($recipient); } catch (phpmailerException $e) { continue; } } } //bcc if (!empty($header['bcc'])) { //header bcc not empty if (empty($args['bcc'])) { //arg bcc empty, override agr cc $args['bcc'] = $header['bcc']; } else { //arg bcc not empty if (!is_array($args['bcc'])) { $args['bcc'] = explode(',', $args['bcc']); } //merge them $args['bcc'] = array_merge($header['bcc']); } } if (!empty($args['bcc'])) { foreach ((array) $args['bcc'] as $recipient) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $recipient, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $recipient = $matches[2]; } } $emailData->addBcc($recipient); } catch (Exception $e) { continue; } } } if (!isset($header['content_type'])) { $content_type = 'text/plain'; } else { $content_type = $header['content_type']; } $content_type = apply_filters('wp_mail_content_type', $content_type); if ($content_type == "text/html") { $emailData->setHtml($args['message']); } //custom header if (isset($args['headers']) && is_array($args['headers'])) { //extract header line $header_arr = explode("\r\n", $args['headers']); foreach ($header_arr as $header) { //extract header key:value $tmp = explode(':', $header); if (count($tmp) > 1) { if ($tmp[1] != NULL) { if (strtolower($tmp[0]) == 'from') { if (aem_get_option('aem_force_header')) { continue; } } $emailData->addHeader($tmp[0], $tmp[1]); } } } } //$args['attachments'] = array ( plugin_dir_path( AEM_PLUGIN_FILE )."/inc/ae/assets/img/slider.png" ); if (!empty($args['attachments'])) { $emailData->setAttachments($args['attachments']); } $postData = apply_filters("aem_postdata", $emailData); return $postData; }
public function it_sets_mailer_data(\SendGrid $sendGrid) { $this->setData(['from_name' => 'Master Jedi Yoda', 'from_email' => '*****@*****.**', 'subject' => 'Example subject', 'template' => 'example template', 'recipients' => ['*****@*****.**' => new Recipient('Jane Doe', '*****@*****.**')], 'global_vars' => ['global_one' => 'Example', 'global_two' => 'Another example'], 'local_vars' => ['*****@*****.**' => [new Variable('local', 'Yet another example')]], 'headers' => [], 'reply_to' => null, 'attachments' => []]); $email = new \SendGrid\Email(); $email->setFrom('*****@*****.**'); $email->setFromName('Master Jedi Yoda'); $email->addSmtpapiTo('*****@*****.**', 'Jane Doe'); $email->setSubject('Example subject'); $email->setHtml(' '); $email->setTemplateId('example template'); $email->setSections(['global_one_SECTION' => 'Example', 'global_two_SECTION' => 'Another example']); $email->setSubstitutions(['local' => ['Yet another example'], 'global_one' => ['global_one_SECTION'], 'global_two' => ['global_two_SECTION']]); $sendGrid->send($email)->shouldBeCalled(); $this->send('Example subject', 'example template')->shouldReturn(true); }
/** * Send the mail. * * @param Midas_Mail $mail mail instance * @throws Midas_Service_SendGrid_Exception */ public function sendMail(Midas_Mail $mail) { if (is_null($this->_client)) { $this->_client = new \SendGrid($this->_user, $this->_key, $this->_config); } $email = new \SendGrid\Email(); $email->setBccs($mail->getBcc()); $email->setCcs($mail->getCc()); $email->setHtml($mail->getBodyHtml(true)); $email->setFrom($mail->getFrom()); $email->setReplyTo($mail->getReplyTo()); $email->setSubject($mail->getSubject()); $email->setText($mail->getBodyText(true)); $email->setTos($mail->getTo()); try { $this->_client->send($email); } catch (\SendGrid\Exception $exception) { throw new Midas_Service_SendGrid_Exception('Could not send mail'); } }
/** * Send email. */ public function sendEmail() { $emailMessage = $this->emailMessage; if ($this->emailAccount == null) { $apiUser = Yii::app()->sendGridEmailHelper->apiUsername; $apiPassword = Yii::app()->sendGridEmailHelper->apiPassword; } else { $apiUser = $this->emailAccount->apiUsername; $apiPassword = ZurmoPasswordSecurityUtil::decrypt($this->emailAccount->apiPassword); } $itemData = EmailMessageUtil::getCampaignOrAutoresponderDataByEmailMessage($this->emailMessage); $sendgrid = new SendGrid($apiUser, $apiPassword, array("turn_off_ssl_verification" => true)); $email = new SendGrid\Email(); $email->setFrom($this->fromUserEmailData['address'])->setFromName($this->fromUserEmailData['name'])->setSubject($emailMessage->subject)->setText($emailMessage->content->textContent)->setHtml($emailMessage->content->htmlContent)->addUniqueArg("zurmoToken", md5(ZURMO_TOKEN))->addHeader('X-Sent-Using', 'SendGrid-API')->addHeader('X-Transport', 'web'); //Check if campaign and if yes, associate to email. if ($itemData != null) { list($itemId, $itemClass, $personId) = $itemData; $email->addUniqueArg("itemId", $itemId); $email->addUniqueArg("itemClass", $itemClass); $email->addUniqueArg("personId", $personId); } foreach ($this->toAddresses as $emailAddress => $name) { $email->addTo($emailAddress, $name); } foreach ($this->ccAddresses as $emailAddress => $name) { $email->addCc($emailAddress); } foreach ($this->bccAddresses as $emailAddress => $name) { $email->addBcc($emailAddress); } //Attachments $attachmentsData = array(); $tempAttachmentPath = Yii::app()->getRuntimePath() . DIRECTORY_SEPARATOR . 'emailAttachments'; if (!file_exists($tempAttachmentPath)) { mkdir($tempAttachmentPath); } if (!empty($emailMessage->files)) { foreach ($emailMessage->files as $file) { $fileName = tempnam($tempAttachmentPath, 'zurmo_'); $fp = fopen($fileName, 'wb'); fwrite($fp, $file->fileContent->content); fclose($fp); $email->addAttachment($fileName, $file->name); $attachmentsData[] = $fileName; } } $emailMessage->sendAttempts = $emailMessage->sendAttempts + 1; $response = $sendgrid->send($email); if ($response->message == 'success') { //Here we need to check if $emailMessage->error = null; $emailMessage->folder = EmailFolder::getByBoxAndType($emailMessage->folder->emailBox, EmailFolder::TYPE_SENT); $emailMessage->sentDateTime = DateTimeUtil::convertTimestampToDbFormatDateTime(time()); } elseif ($response->message == 'error') { $content = Zurmo::t('EmailMessagesModule', 'Response from Server') . "\n"; foreach ($response->errors as $error) { $content .= $error; } $emailMessageSendError = new EmailMessageSendError(); $data = array(); $data['message'] = $content; $emailMessageSendError->serializedData = serialize($data); $emailMessage->folder = EmailFolder::getByBoxAndType($emailMessage->folder->emailBox, EmailFolder::TYPE_OUTBOX_ERROR); $emailMessage->error = $emailMessageSendError; } if (count($attachmentsData) > 0) { foreach ($attachmentsData as $path) { unlink($path); } } $saved = $emailMessage->save(false); if (!$saved) { throw new FailedToSaveModelException(); } }
public function testToWebFormatWithTo() { $email = new SendGrid\Email(); $email->addTo('*****@*****.**'); $email->setFrom('*****@*****.**'); $json = $email->toWebFormat(); $xsmtpapi = json_decode($json["x-smtpapi"]); $this->assertEquals($xsmtpapi->to, array('*****@*****.**')); $this->assertEquals($json['to'], '*****@*****.**'); }
/** * Sends email via SendGrid service * @param string $from * @param string $from_name * @param string|array $recipients * @param string $subject * @param string $message * @return boolean * @author Pavel Klyagin <*****@*****.**> */ protected function sendEmail($from, $from_name, $recipients, $subject, $message) { $user = $this->getCI()->config->item('sendgrid_api_user'); $pass = $this->getCI()->config->item('sendgrid_api_pass'); $options = array('turn_off_ssl_verification' => $this->isSSLAvailable()); $email = new \SendGrid\Email(); $email->setTos(array_values($recipients)); $email->setFrom($from); $email->setFromName($from_name); $email->setSubject($subject); $email->setHtml($message); $sendgrid = new \SendGrid($user, $pass, $options); $response = $sendgrid->send($email); return $response->message == 'success'; }
function send_mail($to, $subject, $message, $fromName, $fromEmail, $arr = array()) { $option = get_option('sendgrid'); $sendgrid = new SendGrid($option['api']); $email = new SendGrid\Email(); if (count($arr)) { $email->setFrom($arr['email']); $email->setFromName($arr['name']); } else { $email->setFrom('*****@*****.**'); $email->setFromName('FinancialInsiders.ca'); } $email->addTo($to); $email->setHtml($message); $email->setSubject($subject); //$email->Body = $message; try { $sendgrid->send($email); } catch (\SendGrid\Exception $e) { echo $e->getCode(); foreach ($e->getErrors() as $er) { echo $er; } } //if(!$mail->Send()) { /* echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; exit; */ // return false; //} //echo 'Message has been sent'; return true; }
protected function send_email($email) { $send_email = FALSE; $sendgrid = new SendGrid(getenv("SENDGRID_USERNAME"), getenv("SENDGRID_PASSWORD")); $message = '<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"/></head><body>'; $message .= '<div style="background-color:white;font-size:14px;font-family:\'Segoe UI\',Arial,Helvetica,sans-serif">'; $message .= '<table style="background-color:#000000;width:100%;font-weight:bold;vertical-align:middle" cellspacing="1" cellpadding="3" border="0"><tbody><tr><td style="font-size:14px;font-family:\'Segoe UI\',Arial,Helvetica,sans-serif">'; $message .= '<img border="0" src="' . base_url('assets/images/logo.png') . '" width="82" height="40"></td></tr></tbody></table>'; foreach ($email['text'] as $line) { $message .= '<p style="background-color:white;font-size:14px;font-family:\'Segoe UI\',Arial,Helvetica,sans-serif">' . $line . '</p>'; } $message .= '<hr noshade="" size="1">'; $message .= '<div style="background-color:white;font-size:14px;font-family:\'Segoe UI\',Arial,Helvetica,sans-serif"><a style="text-decoration:none" href="https://www.facebook.com/chaarbhai" target="_blank">Chaar Bhai</a><span style="color: white;">0</span></div>'; $message .= '<div style="color: #888888;background-color:white;font-size:14px;font-family:\'Segoe UI\',Arial,Helvetica,sans-serif"><strong>Note</strong>: This message has been sent from an unattended email box.</div>'; $message .= '</div></body></html>'; $mail = new SendGrid\Email(); foreach ($email['recipients'] as $recipient) { if (!empty($recipient['email'])) { $mail->addTo($recipient['email'], $recipient['name']); $send_email = TRUE; } } if (isset($email['attachments'])) { foreach ($email['attachments'] as $attachment) { $mail->addAttachment($attachment['path'], $attachment['name']); } } $mail->setFrom('*****@*****.**')->setFromName('Chaar Bhai'); $mail->setSubject($email['subject']); $mail->setHtml($message); if ($send_email) { //$sendgrid->send($mail); } }
$sg_password = "******"; /* CREATE THE SENDGRID MAIL OBJECT ====================================================*/ $sendgrid = new SendGrid($sg_username, $sg_password); $mail = new SendGrid\Email(); /* SEND MAIL / Replace the the address(es) in the setTo/setTos / function with the address(es) you're sending to. ====================================================*/ $name = strip_tags(trim($_POST["name"])); $name = str_replace(array("\r", "\n"), array(" ", " "), $name); $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL); $message = trim($_POST["message"]); $email_content = "Name: {$name}\n"; $email_content .= "Email: {$email}\n\n"; $email_content .= "Message:\n{$message}\n"; try { $mail->setFrom("*****@*****.**")->addTo("*****@*****.**")->setSubject("You Down?!")->setText($email_content)->setHtml(""); $response = $sendgrid->send($mail); if (!$response) { throw new Exception("Did not receive response."); } else { if ($response->message && $response->message == "error") { throw new Exception("Received error: " . join(", ", $response->errors)); } else { print_r($response); } } } catch (Exception $e) { var_export($e); }
public function testSendGridExceptionNotThrownWhen200() { $mockResponse = (object) array('code' => 200, 'body' => (object) array('message' => 'success')); $sendgrid = m::mock('SendGrid[postRequest]', array('foo', 'bar')); $sendgrid->shouldReceive('postRequest')->once()->andReturn($mockResponse); $email = new SendGrid\Email(); $email->setFrom('*****@*****.**')->setSubject('foobar subject')->setText('foobar text')->addTo('*****@*****.**'); $response = $sendgrid->send($email); }
public function testToWebFormatWithBccName() { $email = new \SendGrid\Email(); $email->addBcc('*****@*****.**', 'Frank Foo'); $email->setFrom('*****@*****.**'); $json = $email->toWebFormat(); $this->assertEquals($json['bccname'], ['Frank Foo']); }
Response::json(400, $errors); } $form->fill_values(); $errors = $form->validate_format(); if (!empty($errors)) { Response::json(400, $errors); } // Get form values $full_name = $form->value('full_name'); $email = $form->value('email'); $reason = $form->value('reason'); $subject = $form->value('subject'); $message = $form->value('message'); // Message template $message_body = file_get_contents('../templates/_email_contact.html'); $message_body = str_replace(array('{{ full_name }}', '{{ email }}', '{{ reason }}', '{{ subject }}', '{{ message }}'), array($full_name, $email, $REASONS[$reason], $subject, $message), $message_body); // Mail build $mailer = new SendGrid(Config::$SENDGRID_USERNAME, Config::$SENDGRID_PASSWORD, Config::$SENDGRID_OPTIONS); $message = new SendGrid\Email(); $message->addTo(Config::$CONTACT_FORM_TO); $message->setReplyTo($email); $message->setFrom($email); $message->setFromName('Contacto Jedbangers'); $message->setSubject('Contacto | ' . $full_name); $message->setHtml($message_body); $response = $mailer->send($message); if (strcmp($response->message, 'success') !== 0) { Response::json(500, 'El mensaje no pudo ser enviado. Error: ' . $response->errors[0]); } unset($_SESSION['token_form_contact']); Response::json(200, 'Gracias! El mensaje fue enviado. Te responderemos a la brevedad.');
public function dailyCheckKeywordCronJobs() { $this->load->model('settings_model'); $this->load->model('ranking_model'); $this->load->helper('url'); // Recipients List $recipients = array('*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**', '*****@*****.**'); $check = $this->settings_model->get_system_value('keyword_cron_jobs_daily_check'); if ($check == '1') { // Prepare date Ranges $getDateRanges = function (DateTime $date) { return array('date' => $date->format('Y-m-d'), 'range' => array('from' => $date->format('Y-m-d 00:00:00'), 'to' => $date->format('Y-m-d 23:59:59'))); }; $baseUrl = base_url(); $today = $getDateRanges(new \DateTime()); $yesterday = $getDateRanges(new \DateTime('-1 day')); $result = array(); // Collect Statistic foreach (array('today' => $today, 'yesterday' => $yesterday) as $key => $date) { $total = $this->ranking_model->countKeywordCronJobs(array('dateFrom' => $date['range']['from'], 'dateTo' => $date['range']['to'])); $success = $this->ranking_model->countKeywordCronJobs(array('dateFrom' => $date['range']['from'], 'dateTo' => $date['range']['to'], 'status' => array(3, 5))); if (empty($total)) { continue; } $successRate = ceil(count($success) / (count($total) / 100)); $result[$key] = array('total' => $total, 'success' => $success, 'successRate' => $successRate); } // Success Rate for today less than 90% - send Email notification if (!empty($result['today']['successRate']) && $result['today']['successRate'] < 90) { $cronJobsPrepared = array(); foreach ($result as $key => $value) { foreach ($value['total'] as $cronJob) { $cronJobsPrepared[$key][$cronJob->status][] = $cronJob; } } $body = $this->load->view('crons/keyword_cron_jobs_daily_check.php', array('date' => $today['date'], 'baseUrl' => $baseUrl, 'successRate' => $result['today']['successRate'], 'cronJobsPrepared' => $cronJobsPrepared, 'previousSuccessRate' => $result['yesterday']['successRate']), true); $subject = "Keywords cron jobs - success rate {$result['today']['successRate']}% ({$today['date']} - {$baseUrl})"; $user = $this->config->item('sendgrid_api_user'); $pass = $this->config->item('sendgrid_api_pass'); $email = new \SendGrid\Email(); $email->setTos($recipients); $email->setFrom('*****@*****.**'); $email->setSubject($subject); $email->setHtml($body); $sendgrid = new \SendGrid($user, $pass); $sendgrid->send($email); } } }