Отправка email через сокет

356ft85

Подскажите, как имея в наличии адрес smtp сервера (напр., smtp.com:25)
логин, пароль и ф-ции открытия,
в/вв сокета, сделать отправку письма?
(исходно на php, но в принципе подойтдёт любой язык)
ьело письмо сформировано в нек. переменной
[code]
To: tst.ru
Subject: tst
From: tst.ru
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=_8ee8125b7c6a377b7bd04ab7c29fcc3a"
This is a MIME encoded message.
--=_8ee8125b7c6a377b7bd04ab7c29fcc3a
Content-Type: text/plain; charset=windows-1251
BCC: ipo.spb.ru
Content-Transfer-Encoding: Quot-Printed
HTML OR TEXT here
--=_8ee8125b7c6a377b7bd04ab7c29fcc3a
Content-Type: application/octet-stream; name = "ls"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename = "ls"
MjgyLTEuanBn
--=_8ee8125b7c6a377b7bd04ab7c29fcc3a--

356ft85

хорошо конечно, но было бы время осилить и нужное я там что-то не нашёл

FRider

там описан протокол смтп, по которому ты бужешь общаться с сервером через свой сокет. Хочешь проще - юзай соответствующие библиотеки, там это решиться одной-двумя функциями.

uncle17

я недавно постил на перле код, пару недель назад буквально

Sharp

Если на php, то пользуйся функцией mail
http://php.rinet.ru/manual/en/ref.mail.php

sergey_m

Пока есть такие программисты как и Lexus, отфильтровывать львиную долю спама будет легко. Это хорошо.

Marinavo_0507

> Пока есть такие программисты как и Lexus, отфильтровывать
> львиную долю спама будет легко.
Не скажи. Вот полно сообщений с пустым или почти пустым телом приходит.
Подозреваю, благодаря таким программистам.
Как их фильтровать, учитывая, что бывают важные сообщения, в которых вся полезная информация - в subject?

uncle17

От ты заебал, а... этот код писал не я. Писался он другим человеком, ранее жившим в ГЗ. Конкретнее можешь спросить у Хильберта - он с ним знаком.
бля, ну нет других слов... ущербный... извини уж.

sergey_m

Не ты писал, но ты код просто скопировал. Поэтому утверждение остаётся справедливым. Пока есть такие программисты, со спамом можно бороться.

sergey_m

> Не скажи. Вот полно сообщений с пустым или почти пустым телом приходит.
Нее
Тут по другому принципу отфильтровать можно.

uncle17

другого кода с припиской "(c) " я не вижу, я во всех твоих постах вижу только обсирание людей, до сих пор пользующихся недосистемами Windows и Linux, не пользующихся лучшей в мире системой FreeBSD и вообще - "вы все пидорасы, один я - д'Артаньян"

FRider

у всех бывают проблемы.

sergey_m

> другого кода с припиской "(c) " я не вижу
Я тебе указал на ошибку в том самом треде про SMTP на который ты ссылаешься.

uncle17

там есть пространное упоминание какой-то "ошибки". Какой - не указано

sergey_m

Ты не понял фразу "настоящие программисты ошибки не проверяют"? Подумай над ней еще раз.

Barbie29

          #!/usr/bin/perl -w
use MIME::Lite;
my $msg = MIME::Lite->new(
From =>qq{"test multipart-mixed message"},
To =>$email,
Subject =>qq{"Ваши данные"},
Type =>'multipart/mixed'
);
$msg->attach(Type =>'text',
Data => qq{"$data"}
);
$msg->attach(Type => 'image/jpeg',
Path => '/usr/local/photo/head.jpg',
Filename =>'head.jpg'
);
$msg->attach(Type => 'application/x-msexcel',
Path => "$dir/users/$login/mydata.xls",
Filename =>'mydata.xls'
);
$msg->send;

rosali

Вот полно сообщений с пустым или почти пустым телом приходит.
Ага, еще всякие
Content-Type: text/html;charset=$Charset
еще язык толком не выучат уже спамить рвутся!..

Marinavo_0507

$msg->send;
лопата где-то там?

Barbie29

какая такая лопата?

356ft85

ничё не понял
разве эти скрипты удовлетворяют требованиям первого поста?

Barbie29

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

356ft85

это да, но пока у меня не получилось распарсить приведённые
примеры до уровня
fsockopen и fread, fwrite.
Что, например, значит
use Net::SMTP;
в первом
и
use MIME::Lite;
во втором?

Barbie29

вобщем, perldoc Net::SMTP;
эти модули посылают письма. ботать тебе нужно, вобшем...
или попробуй вот так вот:
http://www.opennet.ru/tips/info/583.shtml

nayk2002

Ты читал первый пост?
У меня в наличии только ф-ции fsockopen и fread/fwrite.

356ft85

кстати, ларчик просто открывался.
 
$f=fsockopen("mailserver.domen", 25);
if(!$f)
echo "error";
else
{
fwrite($f, "HELO 127.0.0.1\n");
fwrite($f, "MAIL From:<mail.ru>\n");
fwrite($f, "RCPT To:<mail.ru>\n");
fwrite($f, "DATA\n");
$out.="\r\n\r\n";
fwrite($f, $out);
fwrite($f, ".\n");
fwrite($f, "QUIT\n");
fclose($f);
}

RED-GREEN

cool_hackers++

aleks058


CoolHackers.GetInstance.SetCount( CoolHackers.GetInstance.GetCount + 1 );

sergey_m

Та же ошибка, что и у Феди.

Barbie29

и ктож над тобой так издеваецца? и потом, откуда тогда fclose?

356ft85

какая ?

sergey_m

"Настоящие программисты не проверяют ошибок."

356ft85

эт ты зря, от скрипта не требовалось проверять ошибки, т.к. он не предназначался для "промышленного" использования

alexkravchuk

эт ты зря, от скрипта не требовалось проверять ошибки, т.к. он не предназначался для "промышленного" использования
Это ты зря... Вот я ради интереса проверил твой скрипт на ремблере (со своими ящиками). Выглядит так, как будто письмо послано, между тем - это не так... И где мне, спрашивается, искать ошибку? Как вообще понять, послано оно или нет, и если не послано, то хотя бы примерно - почему? Вот о том и речь...
между тем, банальное чтение из этого сокета уже даёт:
=============================
530 5.7.0 Authentication required
503 5.0.0 Need MAIL before RCPT
503 5.0.0 Need MAIL command
500 5.5.1 Command unrecognized: ""
500 5.5.1 Command unrecognized: ""
500 5.5.1 Command unrecognized: "."
221 2.0.0 mailc.rambler.ru closing connection
=============================
По крайней мере понятно, что письмо не послано, и примерно понятно, куда копать дальше... А из твоего кода кажется, что всё хорошо, "ждите ответа".

356ft85

я так же сделал, между прочим, ибо сам не мог понять, куда деваются письма.
так что проверка на ошибки в такой формме была добавлена как только в ней появилась необходимость.

sergey_m

Если бы это сделал с самого начала, то сэкономил бы время.
Оставить комментарий
Имя или ник:
Комментарий: