Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function custom_mail ($to, $subject, $message, $additional_headers, $additional_parameters)
- {
- /*\AddMessage2Log(
- 'To: '.$to.PHP_EOL.
- 'Subject: '.$subject.PHP_EOL.
- 'Message: '.$message.PHP_EOL.
- 'Headers: '.$additional_headers.PHP_EOL.
- 'Params: '.$additional_parameters.PHP_EOL
- );*/
- require_once $_SERVER['DOCUMENT_ROOT'].'/vendor/autoload.php';
- $to = str_replace(' ','',$to);
- $mail = new PHPMailer;
- $mail->CharSet = 'UTF-8';
- $address = explode(',', $to);
- foreach ($address as $addr)
- $mail->addAddress($addr);
- // Просматриваем заголовки на предмет аттачей
- $headers = explode("\n", $additional_headers);
- // Определить аттачи легко - передается сепаратор таким вот образом
- $attachHeader = 'Content-Type: multipart/mixed; boundary=';
- foreach( $headers as $h )
- {
- // Если есть заголовок с ограничиителем
- if( stripos($h, $attachHeader) === 0 )
- {
- // Вытаскиваем значение сепаратора
- $bndr = substr($h, strlen($attachHeader));
- $bndr = trim($bndr, '"');
- // И дублируем его же, но в свойство phpMailer.
- $mail->ContentType = 'multipart/mixed; boundary="' . $bndr . '"';
- // I know its dirty hack
- break;
- }
- }
- if (substr_count($message, "Content-Type: text/html"))
- {
- // $mail->Encoding = '8bit';
- }
- else
- {
- // $mail->Encoding = '8bit';
- //$mail->isHTML(true); // Set email format to HTML
- }
- $mail->Subject = $subject;
- $mail->Body = $message;
- if( defined('PROJECT_SMTP_HOST') )
- {
- $mail->IsSMTP();
- $mail->SMTPDebug = defined('PROJECT_SMTP_DEBUG_LEVEL') ? PROJECT_SMTP_DEBUG_LEVEL : 0; // enables SMTP debug information (for testing)
- $mail->Host = PROJECT_SMTP_HOST;
- $mail->SMTPAuth = true; // enable SMTP authentication
- $mail->Username = PROJECT_SMTP_USERNAME;
- $mail->Password = PROJECT_SMTP_PASSWORD;
- $mail->From = PROJECT_SMTP_FROM;
- $mail->FromName = PROJECT_SMTP_FROMNAME;
- $mail->SMTPSecure = PROJECT_SMTP_SECURITY; // "tls" or "ssl"
- $mail->Port = PROJECT_SMTP_PORT;
- //HACK: Dirty hack! if ssl not configured at hosting
- $mail->SMTPOptions = array(
- 'ssl' => array(
- 'verify_peer' => false,
- 'verify_peer_name' => false,
- 'allow_self_signed' => true
- ),
- );
- }
- if( !$mail->send() )
- {
- \AddMessage2Log('Mailer Error: ' . $mail->ErrorInfo);
- return false;
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement