roudcube

Roudcube, симпатичная панелька, задался целью настроить автоответчик.
Взор пал на vacation.
Настройку описывать не буду, остановлюсь на процессе допиливания.
Минусы
Сообщения приходят нечитабельные. Не умеет добавлять поле Content-Type.
Поскольку я выбрал driver = “ftp“,
То лезем в vacation/lib/ftp.class.php

находим.
public function _get
Добавляем перед


$vacArr['subject'] = str_replace('Subject: ','',$dot_vacation_msg[1]);

И меняем dot_vacation_msg[] на +1
Должно получится что-то в таком духе.


$vacArr['content-Type'] = str_replace('Content-Type: ','',$dot_vacation_msg[1]);
$vacArr['subject'] = str_replace('Subject: ','',$dot_vacation_msg[2]);
$vacArr['body'] = join("\n",array_slice($dot_vacation_msg,3));

Дальше ищем
protected function setVacation()
Соответствено снова перед


$vacation_header .= sprintf("Subject: %s\n\n",$this->subject);

вставляем


$vacation_header .= sprintf("Content-Type: text/html; charset=\"utf8\"\n");

Еще у меня возникла проблема с распознаванием символа конца строки в некоторых почтовиках…
Сильно не заморачивался, решил загнать все в html
В функции поправил немного $message
protected function setVacation
получилось


$message = $vacation_header."\n".preg_replace("/\n+/","\n",$this->body)."\n";

Дальше возникла проблема, после выключения, у меня отключалась сортировка, почты, т.е. автоматическое раскладывание СПАМА и удаление левака из ящика, реализованного при помощи procmail
Лезем vacation/lib/dotforward.class.php
Ищем
if ($this->options[‘forward’] != null && $this->options[‘forward’] != “”) {
Добавляем вместо $arrDotForward[] = $this->options[‘forward’];


if (preg_match("/procmail/",$this->options['forward']))
{
$arrDotForward[] = "\"|".$this->options['forward']."\"";
}
else
{
$arrDotForward[] = $this->options['forward'];
}

Теперь имея в .forward
“|/usr/local/bin/procmail”
не боимся что затрется при включении и выключении.

Будет больше времени, поработаю натфелем 😉

Comments are closed.