Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправка почты из Net::SMTP_auth и spamassassin 
:(
    Опции темы
comhunt
Дата 24.10.2009, 08:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



На сервере установлен spamassassin. 
Делаю отправку сообщения при помощи следующего кода:
Код

my $smtp = Net::SMTP_auth->new($server);
$smtp->auth('LOGIN', $sender, '1234567890');
while (@row=$sth->fetchrow_array){
my $id=$row[0];
my $recepient=$row[1];
my $topic=$row[2];
my $text=$row[3];
my $sender=$row[4];
my $contenttype=$row[5];
my $encode=$row[6];
if ($encode eq 'koi' || $encode eq 'koi8' || $encode eq 'koi-8'){$text=win2koi($text);}
$smtp->mail($sender);
$smtp->to($recepient);
$smtp->data();
$smtp->datasend("To: $recepient \n");
$smtp->datasend("From: $sender \n");
$smtp->datasend("Subject: $topic \n"); 
$smtp->datasend("$text \n");
$smtp->dataend(); 
}
$smtp->quit;
 

В результате на адрес $recepient приходит письмо следующего содержания:
Spam detection software, running on the system "****.ru", has
identified this incoming email as possible spam.  The original message
has been attached to this so you can view it (if it isn't spam) or label
similar future email.  If you have any questions, see
The administrator of that system for details.

Content preview:  Текст сообщения [...] 

Content analysis details:   (8.7 points, 7.0 required)

 pts rule name              description
---- ---------------------- --------------------------------------------------
 0.0 MISSING_MID            Missing Message-Id: header
 0.8 HELO_LH_LD             HELO_LH_LD
 0.0 MISSING_DATE           Missing Date: header
 1.8 SUBJ_ALL_CAPS          Subject is all capitals
 1.5 SUBJ_ILLEGAL_CHARS     Subject: has too many raw illegal characters
 3.3 FUZZY_XPILL            BODY: Attempt to obfuscate words in spam
 1.3 SUBJECT_NEEDS_ENCODING SUBJECT_NEEDS_ENCODING
Я так понимаю, что я не полностью формирую заголовок письма? Чтото не указываю. Каким образом надо его формировать чтобы спам фильтр не ругался?

PM MAIL   Вверх
arto
Дата 24.10.2009, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



внимательно изучить rfc822 ?
или использовать подходящий пакет, например MIME::Lite
PM MAIL ICQ   Вверх
comhunt
Дата 25.10.2009, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



MIME::Lite в моем случае не подходит. Софт на сервере отказывается отсылать сообщения без авторизации на SMTP сервер. Отправка идет только если корректно залогиниться на SMTP-сервер. Есть ли вариант на подобие MIME::Lite но совмещенный с авторизацией на SMTP-сервер ? Я так понимаю прелесть модуля MIME::Lite как раз в том и состоит что его объект создаваемый в сценарии корректно создает заголовок и само письмо согласно стандарту.
PM MAIL   Вверх
comhunt
Дата 26.10.2009, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 104
Регистрация: 20.3.2009

Репутация: нет
Всего: нет



Я соврал. Есть такая возможность.
MIME::Lite->send('smtp', "mail.test.com", Timeout=>120);
PM MAIL   Вверх
arto
Дата 26.10.2009, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



можно сформировать тело письма с заголовками, и отпрявлять его с помощью любого другого пакета.
PM MAIL ICQ   Вверх
vivu
Дата 23.11.2009, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 3.11.2009

Репутация: нет
Всего: нет



MAIM::Lite очень удобный модуль. Чтобы отправить с его помощью через smtp нужно сделать примерно следующее

Код

#!/usr/bin/perl

use strict;
use MIME::Lite;

my $mail = MIME::Lite->new(
    From => 'email_from',
    To => 'email_to',
    Subject => "Test smtp connect",
    Data => "test successful",
);

$mail->send_by_smtp(
    'smtp.yandex.ru',
    Port => "25", 
    AuthUser=>'login', 
    AuthPass=>'password',
    Debug => 1,
);

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.