shop-old/core/mailtest/mail.class.php
2026-04-20 01:03:43 +02:00

140 lines
4.4 KiB
PHP

<?php
/*
* @version $Id: index.php 10381 2008-06-01 03:35:53Z $
* @package Carteasy
* @copyright Copyright (C) 2005 - 2011 Wlanium
* @license proprietary
* @author Thomas Bartelt
* Carteasy is a web shop system
*/
class mail_tools {
function __construct($base_object) {
$this->base_object = $base_object;
}
function send_mail($subject, $message, $recipient = false, $logo = false, $recipients_from_db = false, $reply_to = false, $from_mail = false, $from_name = false, $attachments = false) {
date_default_timezone_set("Europe/Berlin");
$subject = utf8_decode($subject);
$from_name = ($from_name) ? mb_encode_mimeheader(utf8_decode($from_name), "UTF-8", "Q") : false;
$recipients['to'] = ($recipient) ? $recipient : $global_mail_settings['mail_to']['global'];
include_once 'Mail.php';
include_once 'Mail/mime.php';
$email = $this->base_object->config->shopConfiguration['system_email'];
$from_mail = $this->base_object->config->shopConfiguration['system_email'];
$host = $this->base_object->config->shopConfiguration['system_email_host'];
$user = $this->base_object->config->shopConfiguration['system_email_user'];
$pass = $this->base_object->config->shopConfiguration['system_email_password'];
$from_name = $this->base_object->config->shopConfiguration['system_email_name'];
$reply = '';
$crlf = "\n";
$hdrs = array(
'From' => (($from_name) ? $from_name : $user).' <'.(($from_mail) ? $from_mail : $reply).'>',
'Sender' => $name.' <'.$email.'>',
'Reply-To'=> (($reply_to) ? $reply_to : $reply),
'Subject' => $subject,
'To' => $recipients['to'],
'Cc' => $recipients['cc'],
'Bcc' => $recipients['bcc']
);
$mime = new Mail_mime($crlf);
$inline_message = '';
/*if ($logo) {
if ($logo == 'intern') {
$mime->addHTMLimage(ROOT_DIR.'web/'.SHOP_SYSTEM.'/images/static/logo4mail2.jpg', 'image/jpeg');
$inline_logo = '<img src="'.ROOT_DIR.'web/'.SHOP_SYSTEM.'images/static/logo4mail2.jpg">';
$inline_message .= '<b>ELISA</b> - <b>E</b>asyway-Shop <b>L</b>ive <b>I</b>nformation <b>S</b>ervices and <b>A</b>nnouncements';
} else if ($logo == 'extern') {
$inline_message .= $global_mail_settings['inline_text'];
$mime->addHTMLimage(ROOT_DIR.'web/'.SHOP_SYSTEM.'/themes/'.THEME.'/images/logo4mail.jpg', 'image/jpeg');
$inline_logo = '<img src="'.ROOT_DIR.'web/'.SHOP_SYSTEM.'/themes/'.THEME.'/images/logo4mail.jpg">';
}
} else {*/
$inline_logo = '';
//}
// read css file
$file_name = $this->base_object->layout->template_dir.'/../media/css/mail.css';
if (file_exists($file_name)) {
$handle = fopen($file_name, "r");
$css = '';
while (!feof($handle)) {
$css .= fgets($handle,2);
};
fclose($handle);
}
$mime->setHTMLBody('<html><head><style type="text/css">'.$css.'</style></head><body>'.utf8_decode($message).'<br /><br />'.utf8_decode($inline_message).'<br />'.$inline_logo.'</body></html>');
// attachments
if ($attachments) {
foreach ($attachments as $attachment) {
if (is_object($attachment)) {
$mime->addAttachment(
$attachment->content,
'application/octet-stream',
$attachment->file_name,
false,
'base64',
'attachment'
);
} else {
$mime->addAttachment($attachment);
}
}
}
$body = $mime->get();
$hdrs = $mime->headers($hdrs);
$mailx =& Mail::factory('smtp', array('host' => $host, 'auth' => true,'socket_options' => array('ssl' => array('verify_peer_name' => false, 'allow_self_signed' => true)), 'username' => $user, 'password' => $pass));
$sent = $mailx->send(implode(',', $recipients), $hdrs, $body);
if (PEAR::isError($sent)) {
$log_object = Logger::get_instance();
$log_object->info("Error in /core/mail.class.php->send_mail()", "Cant't send email. Sendstate: ".$sent);
return false;
} else {
$log_object = Logger::get_instance();
$log_object->info("Error in /core/mail.class.php->send_mail()", "erfolgreich gesendet");
return true;
}
return true;
} // end send_mail
public function checkmail($email) {
$mail_addr = explode(';', $email);
$ready_mail = $mail_addr[0];
$mail_parts = explode('@', $ready_mail);
$domain = $mail_parts[1];
if (!$domain) {
return false;
}
if (function_exists('checkdnsrr')) {
if (checkdnsrr($domain, "MX")) {
if (function_exists('getmxrr')) {
if (!getmxrr($domain, $mxhosts)) {
return false;
}
}
} else {
return false;
}
}
return $ready_mail;
} // end checkmail
}