Вечер добрый. Со времен, когда еще делал сайт в локалке очень не хватало SMTP настроек. Сейчас же, на предоставленом мне сервере снова нет мэил сервера, да и админко не желает его ставить.
Вообщем, взял PHPMailer и связал его с OpenSlaed 1.х. Тестилось на:
Denwer3 (2008-01-13)
Apache 2.2.4
PHP 5.2.4
MySQL 5.0.45
OpenSlaed 1.1
PHPMailer 5.0.2
smtp.yandex.ru
Так как на форуме встречал темы, где люди удивлялись отсутствию smtp настроек - решил поделиться своим решением.
Файлы (прикрепить к сообщению не смог) для добавления настроек в админку. PHPMailer туда не вложил, скачаете сами.
Установка хака
1. Разархивируйте все файлы из папки html/ скачанного архива на сервер, где размещатся Ваш сайт
2. Скачайте PHPMailer:
PHP 4
PHP 5
3. Разархивируйте PHPMailer в директорию function/phpmailer/ следующие файлы:
class.phpmailer.php
class.smtp.php
LICENSE - дань лицензиям
language/phpmailer.lang-ru.php
4. Открываем function/function.php ищем:
Заменяем на:
5. Открываем admin/language/lang-russian.php в конец добавляем:
6. Далее идем в админку и настраиваем SMTP.
Установка прав доступа
1. Установите права CHMOD 666 на все файл config/config_smtp.php
Русификация PHPMailer
1. Откройте function/phpmailer/class.phpmailer.php, найдите:
Замените на:
Буду рад услышать различные замечания и дополнения.
--------------------------
Приятной работы!
Вообщем, взял PHPMailer и связал его с OpenSlaed 1.х. Тестилось на:
Denwer3 (2008-01-13)
Apache 2.2.4
PHP 5.2.4
MySQL 5.0.45
OpenSlaed 1.1
PHPMailer 5.0.2
smtp.yandex.ru
Так как на форуме встречал темы, где люди удивлялись отсутствию smtp настроек - решил поделиться своим решением.
Файлы (прикрепить к сообщению не смог) для добавления настроек в админку. PHPMailer туда не вложил, скачаете сами.
Установка хака
1. Разархивируйте все файлы из папки html/ скачанного архива на сервер, где размещатся Ваш сайт
2. Скачайте PHPMailer:
PHP 4
PHP 5
3. Разархивируйте PHPMailer в директорию function/phpmailer/ следующие файлы:
class.phpmailer.php
class.smtp.php
LICENSE - дань лицензиям
language/phpmailer.lang-ru.php
4. Открываем function/function.php ищем:
function mail_send($email, $smail, $subject, $message, $id="", $pr="") { $email = text_filter($email); $smail = text_filter($smail); $subject = text_filter($subject); $id = intval($id); $pr = (!$pr) ? "3" : "".intval($pr).""; $message = (!$id) ? "".$message."" : "".$message."<br><br>"._IP.": ".getip()."<br>"._BROWSER.": ".getagent()."<br>"._HASH.": ".md5(getagent()).""; $mheader = "MIME-Version: 1.0\n" ."Content-Type: text/html; charset="._CHARSET."\n" ."Content-Transfer-Encoding: 8bit\n" ."Reply-To: \"$smail\" <$smail>\n" ."From: \"$smail\" <$smail>\n" ."Return-Path: <$smail>\n" ."X-Priority: $pr\n" ."X-Mailer: Open SLAED Mailer\n"; mail($email, $subject, $message, $mheader); }
Заменяем на:
function mail_send($email, $smail, $subject, $message, $id="", $pr="") { global $conf; include("config/config_smtp.php"); $email = text_filter($email); $smail = text_filter($smail); $subject = text_filter($subject); $id = intval($id); $pr = (!$pr) ? "3" : "".intval($pr).""; $message = (!$id) ? "".$message."" : "".$message."<br><br>"._IP.": ".getip()."<br>"._BROWSER.": ".getagent()."<br>"._HASH.": ".md5(getagent()).""; if ($econf['active']==0){ $mheader = "MIME-Version: 1.0\n" ."Content-Type: text/html; charset="._CHARSET."\n" ."Content-Transfer-Encoding: 8bit\n" ."Reply-To: \"$smail\" <$smail>\n" ."From: \"$smail\" <$smail>\n" ."Return-Path: <$smail>\n" ."X-Priority: $pr\n" ."X-Mailer: Open SLAED Mailer\n"; mail($email, $subject, $message, $mheader); }else{ if(!class_exists('PHPMailer')) { require('function/phpmailer/class.phpmailer.php'); } $mail = new PHPMailer(); $mail->IsSMTP(); $mail->SMTPAuth = true; $mail->CharSet = _CHARSET; $mail->Host = $econf['host']; $mail->Port = $econf['port']; $mail->Username = $econf['username']; $mail->Password = $econf['password']; $mail->SetFrom($econf['sendermail'], $conf['sitename']); $mail->AddAddress($email, $email); if ($id) $mail->AddReplyTo($smail,$smail); $mail->Subject = $subject; $mail->MsgHTML($message); $mail->Send(); } }
5. Открываем admin/language/lang-russian.php в конец добавляем:
#####BEGIN: SMTP-settings define("_SMTP","SMTP"); define("_SMTP_MAIN","SMTP - настройки"); define("_SMTP_METHOD","Тип отправки"); define("_SMTP_METHOD_MAIL","Через PHP функцию mail()"); define("_SMTP_METHOD_SMTP","Через сервер SMTP"); define("_SMTP_FROM","Почта отправителя"); define("_SMTP_USER","Логин"); define("_SMTP_PASS","Пароль"); define("_SMTP_HOST","Хост"); define("_SMTP_PORT","Порт"); #####END: SMTP-settings
6. Далее идем в админку и настраиваем SMTP.
Установка прав доступа
1. Установите права CHMOD 666 на все файл config/config_smtp.php
Русификация PHPMailer
1. Откройте function/phpmailer/class.phpmailer.php, найдите:
$this->SetLanguage('en'); // set the default language
Замените на:
$this->SetLanguage('ru'); // set the default language
Буду рад услышать различные замечания и дополнения.
--------------------------
Приятной работы!
Версия системы: Open SLAED 1.*
Версия PHP: PHP 5
Сервер: Локальный сервер