При отправке почты через сокет, проставлять заголовок "TO:"

fog

Рыцарь Джедай
При отправке почты через сокет, проставлять заголовок "TO:"

Здравствуйте!

Disclaimer 1:
Думаю при виде подобного "сабжа" у многих профи оскома зубы сводит, мол "сколько можно" :) Но, я честно пользовался поиском и подобного вопроса/ответов я не нашел.

Disclaimer 2:
Поскольку, как я уже говорил, я пользовался поиском, и читал подобные треды, в каждом я встречал сообщение типа "Спамеры маст дай!". Так вот, я не спамер, можно этого не писать. Да и те, кто имел дело со спамом знают, что это делается совсем не так.

Собственно вопрос:

Мне нужно разослать много писем. :) (это не то что вы подумали) Я это, естественно, делаю через сокет.
Соединение я открываю один раз, затем в цикле:

PHP:
fputs($sock, "RCPT TO: <".$this->recipients[$i].">\r\n");
$res = fgets($sock, 256);
if ( substr($res, 0, 3) != "250") Return(false);
Затем я передаю заголовки и тело сообщения.

Всё работает замечательно, но я не могу в заголовках указать поле "TO:" - я ведь передаю серверу заголовки один раз, все сразу.

Оно остаётся пустым, что есть плохо так как:
1. В почтовом клиенте поле остаётся пустым.
2. Первый же спам-фильтр прибьёт такое письмо по правилу "письмо никому не адресовано"

Не хотелось бы открывать соединение для каждого письма новое.

Не могли бы Вы помочь мне найти решение?
 

Popoff

popoff.donetsk.ua
а если после отправки очередного письма не закрывать соединение, а туда же послать еще одно с новыми заголовками?
 

fog

Рыцарь Джедай
Да, мне это приходило в голову, уже когда сообщение писал, но я ещё не успел попробовать.
 

fog

Рыцарь Джедай
Спасибо! Да, работает... вот только время выполнения возростает в два раза....

с 0.031 до 0.068

и есть подозрение, что если буду отсылать не на два ящика письмо, как сейчас, а больше - время будет возростать гораздо быстрее, чем при первом варианте.
 
Сверху