/mnt/web601/b3/14/57451114/htdocs/httpdocs/inc/xtc_php_mail.inc.php
<?php
/* --------------------------------------------------------------
xtc_php_mail.inc.php 2022-04-11 gm
Gambio GmbH
http://www.gambio.de
Copyright (c) 2022 Gambio GmbH
Released under the GNU General Public License (Version 2)
[http://www.gnu.org/licenses/gpl-2.0.html]
--------------------------------------------------------------
based on:
(c) 2003 nextcommerce (xtc_php_mail.inc.php,v 1.17 2003/08/24); www.nextcommerce.org
(c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: xtc_php_mail.inc.php 1129 2005-08-05 11:46:11Z mz $)
Released under the GNU General Public License
---------------------------------------------------------------------------------------*/
// include the mail classes
function xtc_php_mail(
$from_email_address,
$from_name,
$to_email_address,
$to_name,
$forwarding_to,
$reply_email_address,
$reply_name,
$path_to_attachment,
$path_to_more_attachments,
$email_subject,
$message_body_html,
$message_body_plain
) {
try {
// Get email service.
$emailService = StaticGXCoreLoader::getService('Email');
// Sender
$from_email_address = trim($from_email_address);
if (empty($from_email_address)) {
$from_email_address = trim(EMAIL_FROM);
}
if (empty($from_name)) {
$from_name = STORE_OWNER;
}
$sender = MainFactory::create('EmailContact',
MainFactory::create('EmailAddress', $from_email_address),
MainFactory::create('ContactType', ContactType::SENDER),
MainFactory::create('ContactName', $from_name));
// Recipient
$recipient = MainFactory::create('EmailContact',
MainFactory::create('EmailAddress', trim((string)$to_email_address)),
MainFactory::create('ContactType', ContactType::RECIPIENT),
MainFactory::create('ContactName', (string)$to_name));
// Subject & Content
$subject = MainFactory::create('EmailSubject', (string)$email_subject);
$content = (EMAIL_USE_HTML == 'true') ? MainFactory::create('EmailContent',
(string)$message_body_html) : MainFactory::create('EmailContent',
nl2br((string)$message_body_plain));
// Create Email Object
$email = $emailService->create($sender, $recipient, $subject, $content);
// Content Plain
$email->setContentPlain(MainFactory::create('EmailContent', (string)$message_body_plain));
// Reply To
$reply_email_address = trim($reply_email_address);
if (!empty($reply_email_address)) {
$replyTo = MainFactory::create('EmailContact',
MainFactory::create('EmailAddress', $reply_email_address),
MainFactory::create('ContactType', ContactType::REPLY_TO),
MainFactory::create('ContactName', (string)$reply_name));
$email->setReplyTo($replyTo);
}
// BCC Contacts
if (!empty($forwarding_to)) {
$email->setBcc(MainFactory::create('ContactCollection'));
$bccAddressesArray = explode(',', $forwarding_to);
foreach ($bccAddressesArray as $emailAddress) {
$bccContact = MainFactory::create('EmailContact',
MainFactory::create('EmailAddress', trim($emailAddress)),
MainFactory::create('ContactType', ContactType::BCC),
MainFactory::create('ContactName', ''));
$email->getBcc()->add($bccContact);
}
}
// Attachments
// EmailService does not currently use a display name for the attachments.
$attachments = MainFactory::create('AttachmentCollection');
if (!empty($path_to_attachment)) {
if (is_array($path_to_attachment) && empty($path_to_attachment) === false) {
foreach ($path_to_attachment as $file) {
if (is_string($file)) {
$path = $file;
$name = '';
} else {
$path = $file['path'];
if (isset($file['name'])) {
$name = str_replace('/', '_', $file['name']);
}
}
// It is possible that some sections of the app will send an invalid attachment path.
if (file_exists((string)$path)) {
if (isset($file['configuration'])) {
$hash = $file['configuration']['hash'];
$configurationKey = $file['configuration']['configurationKey'];
$languageCode = $file['configuration']['languageCode'];
$attachmentConfiguration = MainFactory::create('AttachmentConfiguration',
(string)$configurationKey,
(string)$hash,
(string)$languageCode);
}
$attachmentPath = MainFactory::create('AttachmentPath', (string)$path);
$attachmentName = MainFactory::create('AttachmentName', (string)$name);
$attachments->add(MainFactory::create('EmailAttachment',
$attachmentPath,
$attachmentName,
$attachmentConfiguration ?? null));
} else {
// create a new error log - attachment file is empty
$log = LogControl::get_instance();
$log->notice('Email attachment file does not exist in the server: ' . (string)$path);
}
}
} else {
if (is_string($path_to_attachment)) {
$attachmentPath = MainFactory::create('AttachmentPath', $path_to_attachment);
$attachments->add(MainFactory::create('EmailAttachment', $attachmentPath));
}
}
}
if (!empty($path_to_more_attachments)) {
$attachmentsArray = preg_split('/[;,]/', $path_to_more_attachments);
foreach ($attachmentsArray as $path) {
$path = trim($path);
if ($path !== '') {
$attachmentPath = MainFactory::create('AttachmentPath', $path);
$attachments->add(MainFactory::create('EmailAttachment', $attachmentPath));
}
}
}
$email->setAttachments($attachments);
// Stores and sends the email object.
$emailService->send($email);
$result = true;
} catch (Exception $ex) {
$log = LogControl::get_instance();
$log->notice($ex->getMessage());
$result = false;
}
// Compatibility value for sections of the app that still check the result.
return $result;
}

Unexpected error occurred...
Class "main_ORIGIN" not found