Вечер добрый. Со времен, когда еще делал сайт в локалке очень не хватало 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
Сервер: Локальный сервер