господа, ни у кого нету примера кода с отправкой писем через SMTP (modx api) не влезая в системные настройки?
Вот тебе кусок рассыльщика, тут задаются параметры отправки если дефолтных нет:
$mailer = $modx->getService('mail', 'mail.modPHPMailer');
$return = '';
foreach ($emails as $data) {
if (!empty($data)) {
if (!empty($data['to'])) {
foreach ($data['to'] as $email=>$etn) {
if (!empty($email)) $mailer->address('to', $email,$etn);
}
} else {
$return = 'No addressed to send.';
}
if (!empty($data['cc'])) {
foreach ($data['cc'] as $email=>$etn) {
if (!empty($email)) $mailer->address('cc', $email,$etn);
}
}
if (!empty($data['bcc'])) {
foreach ($data['bcc'] as $email=>$etn) {
if (!empty($email)) $mailer->address('bcc', $email,$etn);
}
}
if (!empty($data['reply-to'])) {
foreach ($data['reply-to'] as $email=>$etn) {
$mailer->address('reply-to', $email,$etn);
}
}
if (isset($data['subject'])) $mailer->set(modMail::MAIL_SUBJECT, $data['subject']);
if (isset($data['content'])) {
$mailer->set(modMail::MAIL_BODY, $data['content']);
} elseif (isset($data['tpl']) && $chunk = $data['tpl']['name']) {
$content = chunk($chunk, $data['tpl']['data']);
unset($data['tpl']);
$mailer->set(modMail::MAIL_BODY, $content);
} else {
$return = '[Email Helper] There is nothing to send.';
}
if (!empty($data['sender'])) $mailer->set(modMail::MAIL_SENDER, $data['sender']);
if (!empty($data['from'])) $mailer->set(modMail::MAIL_FROM, $data['from']);
if (!empty($data['fromName'])) $mailer->set(modMail::MAIL_FROM_NAME, $data['fromName']);
if (isset($data['setHTML'])) $mailer->setHTML($data['setHTML']);
if (!empty($data['attach'])) {
foreach ($data['attach'] as $filedata) {
list($file, $name, $encoding, $type) = $filedata;
$mailer->attach($file, $name, $encoding, $type);
}
}
if (!empty($return)) {
$modx->log(modX::LOG_LEVEL_ERROR, $return);
$mailer->reset();
continue;
}
if (!$mailer->send()) {
$modx->log(modX::LOG_LEVEL_ERROR, 'An error occurred while trying to send the email: ' . $mailer->mailer->ErrorInfo);
$mailer->reset();
$emails2 = $modx->cacheManager->get($queue,[xPDO::OPT_CACHE_KEY=>'queue']);
if (empty($emails2) || !is_array($emails2)) {
$emails2 = array($data);
} else {
$emails2[] = $data;
}
$emails2 = $modx->cacheManager->set($queue, $emails2, 0, [xPDO::OPT_CACHE_KEY => 'queue']);
continue;
}
}
}
Сойдет?