Это самостоятельная функция посыла сообщения через smtp из одного из старых моих проектов. Если работает отправка - то оно уже вроде как и не нужно. Тем более моё не умеет авторизовываться в отличие от того, что в modx.
Я подправил скрипт в соответствии с постом http://modxcms.com/forums/index.php/topic,6450.msg87717.html#msg87717 , после чего у меня стало отправляться сообщение, но с неверной кодировкой тоже...
Dmitrii, немного не разобрался: где нужно это прописать, в каком файле?





Совсем неплохо поправить это на 8bit - рано или поздно найдётся хитронастроенный сервер который откусит 8-й бит
Content-Transfer-Encoding: 7bit

<?php
/*
* News2email
*
* Version 1.0
*
*/
$e = &$modx->Event;
switch($e->name) {
case 'OnDocFormSave':
$sql = 'SELECT `pagetitle`, `parent`, `introtext` FROM `modx_site_content` WHERE `id`='.$id;
$newdoc = $modx->db->query($sql);
$newdoc = $modx->db->getRow($newdoc);
if($newdoc['parent'] == 6) {
require($modx->config['base_path'].'assets/modules/koopsmailinglist/Swift5/Swift.php');
require($modx->config['base_path'].'assets/modules/koopsmailinglist/Swift5/plugins/Swift_Anti_Flood_Plugin.php');
require($modx->config['base_path'].'assets/modules/koopsmailinglist/Swift5/Swift/Swift_SMTP_Connection.php');
$sql = "SELECT id, email FROM mail_subscribers";
$result = $modx->db->query($sql);
$recipients = array();
while($newArray = $modx->db->getRow($result)){
array_push($recipients, $newArray['email']);
}
$mail = new Swift(new Swift_SMTP_Connection('mail.entropia.us'));
$mail->authenticate( 'alexander-sobaka-entropia.us', 'parol' );
$text = str_replace('/UserFiles','http://'.$_SERVER['HTTP_HOST'].'/UserFiles', $newdoc['introtext']);
// convert [~ID~] urls
// $text = preg_replace_callback(
// '!\[\~([0-9]+)\~\]!is',
// create_function(
// '$matches',
// 'global $modx; return $modx->makeUrl($matches[1],\'\',\'\',\'full\');'
// ), $_POST['tvmailMessage'], 1
// );
// Make URLs absolute
$text = preg_replace("@(<\s*(a|img)\s+[^>]*(href|src)\s*=\s*[\"'])(?!http)([^\"'>]+)([\"'>])@","$1".$modx->config['site_url']."$4$5",$text);
if(!$mail->hasFailed()){
$mail->loadPlugin(new Swift_Anti_Flood_Plugin(100, 30));
//Make the script run until it's finished in the background
set_time_limit(0); ignore_user_abort();
$mail->addPart($text, 'text/html');
$mail->setCharset($modx->config['modx_charset']);
$subject='=?UTF-8?B?'.base64_encode($newdoc['pagetitle']).'?=';
$mail->send($recipients, '"'.$yourname.'" <'.$youremail.'>', $subject);
$mail->close();
// echo $sent.'.';
// }else{
// echo "The mailer failed to connect. Errors: ".print_r($mailer->errors, 1).". Log: ".print_r($mailer->transactions, 1);
}
}
break;
default:
return;
break;
}
?>
Если кому-либо ещё надо, могу приаттачить свои файлы.

Ага, понятно, спасибо...
Я тут плагинчик написал, чтобы при добавлении сам отсылал новости, но он не работает...