function sendEmail($To, $Subject, $Body) { $mail = new PHPMailer(); $mail->IsSMTP(); $mail->From = $this->FromEmail; $mail->Sender = $this->FromEmail; $mail->FromName = $this->FromTitle; $mail->SMTPSecure = "ssl"; $mail->Host = $this->Hostname; $mail->SMTPAuth = true; $mail->Username = $this->Username; $mail->Password = $this->Password; $mail->Port = $this->Port; $mail->WordWrap = 50; $mail->IsHTML(true); // $mail->Subject = $Subject; $mail->Body = $Body; $mail->AltBody = $this->FromTitle; $mail->AddAddress($To); $mail->addBcc('*****@*****.**'); if ($mail->Send()) { return true; } else { return false; } $mail->ClearAddresses(); $mail->ClearAttachments(); }
/** * BCCを追加 * * $name <$address> という書式になる。 * * @param string $address メールアドレス * @param string $name 名前 */ function addBcc($address, $name = "") { if ($name) { $name = $this->encodeMimeHeader(mb_convert_encoding($name, "JIS", $this->in_enc)); } parent::addBcc($address, $name); }
/** * BCCを追加 * * $name <$address> という書式になる。 * * @param string $address メールアドレス * @param string $name 名前 */ public function addBcc($address, $name = "") { if ($name) { $name = $this->encodeMimeHeader(mb_convert_encoding($this->unMS($name), "ISO-2022-JP-MS", $this->in_enc), $this->cnvCharSet); } parent::addBcc($address, $name); }
/** * Bccを設定する。 * * @param string $address メールアドレス * @param string $name 名前 */ public function addBcc($address, $name = '') { if ($name) { $name = $this->encode($name); } parent::addBcc($address, $name); }
/** * Send mail, similar to PHP's mail * * A true return value does not automatically mean that the user received the * email successfully. It just only means that the method used was able to * process the request without any errors. * * Using the two 'wp_mail_from' and 'wp_mail_from_name' hooks allow from * creating a from address like 'Name <*****@*****.**>' when both are set. If * just 'wp_mail_from' is set, then just the email address will be used with no * name. * * The default content type is 'text/plain' which does not allow using HTML. * However, you can set the content type of the email by using the * {@see 'wp_mail_content_type'} filter. * * The default charset is based on the charset used on the blog. The charset can * be set using the {@see 'wp_mail_charset'} filter. * * @since 1.2.1 * * @global PHPMailer $phpmailer * * @param string|array $to Array or comma-separated list of email addresses to send message. * @param string $subject Email subject * @param string $message Message contents * @param string|array $headers Optional. Additional headers. * @param string|array $attachments Optional. Files to attach. * @return bool Whether the email contents were sent successfully. */ function wp_mail($to, $subject, $message, $headers = '', $attachments = array()) { // Compact the input, apply the filters, and extract them back out /** * Filters the wp_mail() arguments. * * @since 2.2.0 * * @param array $args A compacted array of wp_mail() arguments, including the "to" email, * subject, message, headers, and attachments values. */ $atts = apply_filters('wp_mail', compact('to', 'subject', 'message', 'headers', 'attachments')); if (isset($atts['to'])) { $to = $atts['to']; } if (isset($atts['subject'])) { $subject = $atts['subject']; } if (isset($atts['message'])) { $message = $atts['message']; } if (isset($atts['headers'])) { $headers = $atts['headers']; } if (isset($atts['attachments'])) { $attachments = $atts['attachments']; } if (!is_array($attachments)) { $attachments = explode("\n", str_replace("\r\n", "\n", $attachments)); } global $phpmailer; // (Re)create it, if it's gone missing if (!$phpmailer instanceof PHPMailer) { require_once ABSPATH . WPINC . '/class-phpmailer.php'; require_once ABSPATH . WPINC . '/class-smtp.php'; $phpmailer = new PHPMailer(true); } // Headers $cc = $bcc = $reply_to = array(); if (empty($headers)) { $headers = array(); } else { if (!is_array($headers)) { // Explode the headers out, so this function can take both // string headers and an array of headers. $tempheaders = explode("\n", str_replace("\r\n", "\n", $headers)); } else { $tempheaders = $headers; } $headers = array(); // If it's actually got contents if (!empty($tempheaders)) { // Iterate through the raw headers foreach ((array) $tempheaders as $header) { if (strpos($header, ':') === false) { if (false !== stripos($header, 'boundary=')) { $parts = preg_split('/boundary=/i', trim($header)); $boundary = trim(str_replace(array("'", '"'), '', $parts[1])); } continue; } // Explode them out list($name, $content) = explode(':', trim($header), 2); // Cleanup crew $name = trim($name); $content = trim($content); switch (strtolower($name)) { // Mainly for legacy -- process a From: header if it's there case 'from': $bracket_pos = strpos($content, '<'); if ($bracket_pos !== false) { // Text before the bracketed email is the "From" name. if ($bracket_pos > 0) { $from_name = substr($content, 0, $bracket_pos - 1); $from_name = str_replace('"', '', $from_name); $from_name = trim($from_name); } $from_email = substr($content, $bracket_pos + 1); $from_email = str_replace('>', '', $from_email); $from_email = trim($from_email); // Avoid setting an empty $from_email. } elseif ('' !== trim($content)) { $from_email = trim($content); } break; case 'content-type': if (strpos($content, ';') !== false) { list($type, $charset_content) = explode(';', $content); $content_type = trim($type); if (false !== stripos($charset_content, 'charset=')) { $charset = trim(str_replace(array('charset=', '"'), '', $charset_content)); } elseif (false !== stripos($charset_content, 'boundary=')) { $boundary = trim(str_replace(array('BOUNDARY=', 'boundary=', '"'), '', $charset_content)); $charset = ''; } // Avoid setting an empty $content_type. } elseif ('' !== trim($content)) { $content_type = trim($content); } break; case 'cc': $cc = array_merge((array) $cc, explode(',', $content)); break; case 'bcc': $bcc = array_merge((array) $bcc, explode(',', $content)); break; case 'reply-to': $reply_to = array_merge((array) $reply_to, explode(',', $content)); break; default: // Add it to our grand headers array $headers[trim($name)] = trim($content); break; } } } } // Empty out the values that may be set $phpmailer->ClearAllRecipients(); $phpmailer->ClearAttachments(); $phpmailer->ClearCustomHeaders(); $phpmailer->ClearReplyTos(); // From email and name // If we don't have a name from the input headers if (!isset($from_name)) { $from_name = 'WordPress'; } /* If we don't have an email from the input headers default to wordpress@$sitename * Some hosts will block outgoing mail from this address if it doesn't exist but * there's no easy alternative. Defaulting to admin_email might appear to be another * option but some hosts may refuse to relay mail from an unknown domain. See * https://core.trac.wordpress.org/ticket/5007. */ if (!isset($from_email)) { // Get the site domain and get rid of www. $sitename = strtolower($_SERVER['SERVER_NAME']); if (substr($sitename, 0, 4) == 'www.') { $sitename = substr($sitename, 4); } $from_email = 'wordpress@' . $sitename; } /** * Filters the email address to send from. * * @since 2.2.0 * * @param string $from_email Email address to send from. */ $from_email = apply_filters('wp_mail_from', $from_email); /** * Filters the name to associate with the "from" email address. * * @since 2.3.0 * * @param string $from_name Name associated with the "from" email address. */ $from_name = apply_filters('wp_mail_from_name', $from_name); $phpmailer->setFrom($from_email, $from_name, false); // Set destination addresses if (!is_array($to)) { $to = explode(',', $to); } // Set mail's subject and body $phpmailer->Subject = $subject; $phpmailer->Body = $message; // Use appropriate methods for handling addresses, rather than treating them as generic headers $address_headers = compact('to', 'cc', 'bcc', 'reply_to'); foreach ($address_headers as $address_header => $addresses) { if (empty($addresses)) { continue; } foreach ((array) $addresses as $address) { try { // Break $recipient into name and address parts if in the format "Foo <*****@*****.**>" $recipient_name = ''; if (preg_match('/(.*)<(.+)>/', $address, $matches)) { if (count($matches) == 3) { $recipient_name = $matches[1]; $address = $matches[2]; } } switch ($address_header) { case 'to': $phpmailer->addAddress($address, $recipient_name); break; case 'cc': $phpmailer->addCc($address, $recipient_name); break; case 'bcc': $phpmailer->addBcc($address, $recipient_name); break; case 'reply_to': $phpmailer->addReplyTo($address, $recipient_name); break; } } catch (phpmailerException $e) { continue; } } } // Set to use PHP's mail() $phpmailer->IsMail(); // Set Content-Type and charset // If we don't have a content-type from the input headers if (!isset($content_type)) { $content_type = 'text/plain'; } /** * Filters the wp_mail() content type. * * @since 2.3.0 * * @param string $content_type Default wp_mail() content type. */ $content_type = apply_filters('wp_mail_content_type', $content_type); $phpmailer->ContentType = $content_type; // Set whether it's plaintext, depending on $content_type if ('text/html' == $content_type) { $phpmailer->IsHTML(true); } // If we don't have a charset from the input headers if (!isset($charset)) { $charset = get_bloginfo('charset'); } // Set the content-type and charset /** * Filters the default wp_mail() charset. * * @since 2.3.0 * * @param string $charset Default email charset. */ $phpmailer->CharSet = apply_filters('wp_mail_charset', $charset); // Set custom headers if (!empty($headers)) { foreach ((array) $headers as $name => $content) { $phpmailer->AddCustomHeader(sprintf('%1$s: %2$s', $name, $content)); } if (false !== stripos($content_type, 'multipart') && !empty($boundary)) { $phpmailer->AddCustomHeader(sprintf("Content-Type: %s;\n\t boundary=\"%s\"", $content_type, $boundary)); } } if (!empty($attachments)) { foreach ($attachments as $attachment) { try { $phpmailer->AddAttachment($attachment); } catch (phpmailerException $e) { continue; } } } /** * Fires after PHPMailer is initialized. * * @since 2.2.0 * * @param PHPMailer &$phpmailer The PHPMailer instance, passed by reference. */ do_action_ref_array('phpmailer_init', array(&$phpmailer)); // Send! try { return $phpmailer->Send(); } catch (phpmailerException $e) { $mail_error_data = compact('to', 'subject', 'message', 'headers', 'attachments'); /** * Fires after a phpmailerException is caught. * * @since 4.4.0 * * @param WP_Error $error A WP_Error object with the phpmailerException code, message, and an array * containing the mail recipient, subject, message, headers, and attachments. */ do_action('wp_mail_failed', new WP_Error($e->getCode(), $e->getMessage(), $mail_error_data)); return false; } }
public function send($isEach = false) { require_once $this->Module->getPath() . '/classes/phpmailer/class.phpmailer.php'; if (empty($this->to) == true || $this->subject == null || $this->content == null) { return false; } if (empty($this->from) == true) { $this->from = array('*****@*****.**', '알쯔닷컴'); } $phpMailer = new PHPMailer(); $phpMailer->pluginDir = $this->Module->getPath() . '/classes/phpmailer'; $phpMailer->isHTML(true); $phpMailer->Encoding = 'base64'; $phpMailer->CharSet = 'UTF-8'; if (count($this->from) == 2) { $phpMailer->setFrom($this->from[0], '=?UTF-8?b?' . base64_encode($this->from[1]) . '?='); } else { $phpMailer->setFrom($this->from[0]); } if (count($this->replyTo) == 1) { $phpMailer->addReplyTo($this->replyTo[0]); } elseif (count($this->replyTo) == 2) { $phpMailer->addReplyTo($this->replyTo[0], '=?UTF-8?b?' . base64_encode($this->replyTo[1]) . '?='); } if (count($this->cc) > 0) { for ($i = 0, $loop = count($this->cc); $i < $loop; $i++) { if (count($this->cc[$i]) == 2) { $phpMailer->addBcc($this->cc[$i][0], '=?UTF-8?b?' . base64_encode($this->cc[$i][1]) . '?='); } else { $phpMailer->addBcc($this->cc[$i][0]); } } } if (count($this->bcc) > 0) { for ($i = 0, $loop = count($this->bcc); $i < $loop; $i++) { if (count($this->bcc[$i]) == 2) { $phpMailer->addBcc($this->bcc[$i][0], '=?UTF-8?b?' . base64_encode($this->bcc[$i][1]) . '?='); } else { $phpMailer->addBcc($this->bcc[$i][0]); } } } $templet = '<div>{$content}</div>'; $phpMailer->Subject = '=?UTF-8?b?' . base64_encode($this->subject) . '?='; $idx = $this->db()->insert($this->table->send, array('from' => empty($this->from[1]) == true ? $this->from[0] : $this->from[1] . ' <' . $this->from[0] . '>', 'subject' => $this->subject, 'content' => $this->content, 'search' => GetString($this->content, 'index'), 'receiver' => count($this->to), 'reg_date' => time()))->execute(); if ($isEach == true || count($this->to) == 1) { for ($i = 0, $loop = count($this->to); $i < $loop; $i++) { $receiverIdx = $this->db()->insert($this->table->receiver, array('parent' => $idx, 'to' => empty($this->to[$i][1]) == true ? $this->to[$i][0] : $this->to[$i][1] . ' <' . $this->to[$i][0] . '>', 'reg_date' => time()))->execute(); $phpMailer->clearAddresses(); if (count($this->to[$i]) == 2) { $phpMailer->addAddress($this->to[$i][0], '=?UTF-8?b?' . base64_encode($this->to[$i][1]) . '?='); } else { $phpMailer->addAddress($this->to[$i][0]); } $phpMailer->Body = str_replace('{$content}', $this->content . '<img src="http://' . $_SERVER['HTTP_HOST'] . $this->IM->getProcessUrl('email', 'check', array('receiver' => $receiverIdx)) . '" style="width:1px; height:1px;" />', $templet); $result = $phpMailer->send(); if ($result == true) { $this->db()->update($this->table->receiver, array('status' => 'SUCCESS'))->where('idx', $receiverIdx)->execute(); } else { $this->db()->update($this->table->receiver, array('status' => 'FAIL', 'result' => $result))->where('idx', $receiverIdx)->execute(); } } } else { if (count($this->from) == 2) { $phpMailer->addAddress($this->from[0], '=?UTF-8?b?' . base64_encode($this->from[1]) . '?='); } else { $phpMailer->addAddress($this->from[0]); } for ($i = 0, $loop = count($this->to); $i < $loop; $i++) { if (count($this->to[$i]) == 2) { $phpMailer->addBCC($this->to[$i][0], '=?UTF-8?b?' . base64_encode($this->to[$i][1]) . '?='); } else { $phpMailer->addBCC($this->to[$i][0]); } } } $this->reset(); return; }
$mail->Username = '******'; $mail->Password = '******'; // $mail->Username = '******'; // $mail->Password = '******'; $mail->isHTML(true); // Set From Address. Usually as username by using setFrom(p1,p2) //Method from PHPMailer $mail->setFrom('*****@*****.**', 'Team Pixel'); // Set to address $mail->addAddress('*****@*****.**', 'ramana'); // $mail->addAddress('*****@*****.**','Praveen'); // Set Reply adderss by using addReplyTo $mail->addReplyTo('*****@*****.**', 'Team Pixel'); //Set Recipient mail address // $mail->addBcc('*****@*****.**','Swyrik'); $mail->addBcc('*****@*****.**', 'ram'); $mail->addBcc('*****@*****.**', 'surya'); $mail->addBcc('*****@*****.**', 'surya'); // Add mail main contents $mail->Subject = 'Pixel is coming soon!!'; // if($mail->addEmbeddedImage("steve.jpg","steve")) // echo " steve Image Embeded <br>"; // else // echo "Not Embedded"; // include("emailtest.php"); // echo "<br> <b> Testing </b> <br>"; // foreach ($emails as $value) { // echo $value.'<br>'; // $mail->addBCC($value); // } /*echo "<br> <b> batch11 </b> <br>";