WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Помогите с smtp !!!

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Помогите с smtp !!!
alpeugene опубликован 25-12-2001 21:47 MSK   Click Here to See the Profile for alpeugene   Click Here to Email alpeugene  
Кто знает-помогите!
Я пишу прогу на С++,которая должна работать под Win98 и задача которой - рассылать e-mail сообщения клиентам из БД по заданному алгоритму.
У меня 2 проблемы:
1)как определить SMTP сервер,имея только адрес (имеем - например alpeugene@yandex.ru,надо чтоб прога выдавала что-то типа smtp.yandex.ru)
2)проблемы с yahoo - почтой(smtp.mail.yahoo.com)
Не хочет он брать почту как все.Я уже и коннектился с pop.mail.yahoo.com,и перед MAIL FROM:<----> посылал AUTH LOGIN c шифрованными логином и паролем,ничо не помогает,а задание срывается....
Помогите!!!
Заранее благодарен. eugene(alpeugene@hotmail.com)
purpe опубликован 25-12-2001 22:05 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
а ты уверен, что smtp.mail.yahoo.com вообще разрешает отправлять через себя мыло ?
Flex Ferrum опубликован 25-12-2001 22:13 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
По поводу первой проблемы - в DNS есть такой тип записи - MX (Mail eXchange). Сделав соответсвующий запрос к DNS серверу ты получишь IP адрес хоста, обслуживающего почтовый домен.
На счет второго - посмотри, правильно ли ты реализуешь протокол. Полностью он описан в rfc821.
alpeugene опубликован 26-12-2001 20:07 MSK     Click Here to See the Profile for alpeugene  Click Here to Email alpeugene     
1)Насчет DNS и MX записей я в курсе,но можно ли это реализовать на Win98 и если можно,то как ?
2)То,что сервер smtp.mail.yahoo.com позволяет как-то посылать через себя мыло я уверен,так как совсем недавно скачал программу MailSender(freeware,но исходников не дали),написанную на Делфи,которая на данный сервер мыло шлет и успешно.Видимо можно как-то это организовать и на С++,но как,может кто знает,помогите!!!
Flex Ferrum опубликован 27-12-2001 10:28 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
1) Судя по информации в MSDN gethostbyname резолвит MX записи. На я сам лично не проверял.
2) Можешь приветси польностью дамп сессии? Легче будет разобраться.
purpe опубликован 27-12-2001 11:23 MSK     Click Here to See the Profile for purpe  Click Here to Email purpe     
2alpeugene:

а ты уверен, что твой MailSender использует в качестве сервера исходящей почты именно smtp.mail.yahoo.com ?

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

alpeugene опубликован 27-12-2001 20:44 MSK     Click Here to See the Profile for alpeugene  Click Here to Email alpeugene     
1)вопрос остается открытым....
2)вопрос снимается,способ я нашел,правда не без помощи www.codeguru.com(кстати сервер действительно smtp.mail.yahoo.com ,если не верите ,можете проверить telnet-ом) .Кому интересно-пишите (alpeugene@hotmail.com).Непременно отвечу
alpeugene опубликован 30-12-2001 20:17 MSK     Click Here to See the Profile for alpeugene  Click Here to Email alpeugene     
....Так что,неужели никто не знает,как реализовать DNS Rsolver MX записей на С++ ,работающий под Win98.На делфи я нашел аж 3(!!!)таких работающих проги (правда без исходников)...
Кто знает помогите !!!!
lamo опубликован 31-12-2001 00:50 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
host -t MX yahoo.com
or
nslookup
set type=MX
yahoo.com
.

dns запрос стандартен.
проще и надежнее юзать sendmail (чтото типа open(F, "|sendmail")).
ну или если так охота все mx домена
перебирать и т.д. - дерзай.

alpeugene опубликован 31-12-2001 16:04 MSK     Click Here to See the Profile for alpeugene  Click Here to Email alpeugene     
Большое спасибо за ответ !!!
Насчет nslookup - так это не для Win98
Насчет sendmail и т д - это что-то новое для меня .А можно поподробнее,что за он,как его едят,где найти и может примерчик какой и можно ли его применять в Win98!!!
Заранее благодарен !!!
lamo опубликован 02-01-2001 11:33 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
$ host -t MX yahoo.com
yahoo.com mail is handled (pri=1) by mx1.mail.yahoo.com
yahoo.com mail is handled (pri=1) by mx2.mail.yahoo.com
yahoo.com mail is handled (pri=5) by mx4.mail.yahoo.com

или

$ nslookup
> set type=MX
> yahoo.com
yahoo.com preference = 5, mail exchanger = mx4.mail.yahoo.com
yahoo.com preference = 1, mail exchanger = mx1.mail.yahoo.com
yahoo.com preference = 1, mail exchanger = mx2.mail.yahoo.com


это ты вычислил мыл ексченжеры.
потом пытаешся в зависимости от приоритета
слать на эти ексченжеры мыл юзеру (user@yahoo.com).
не получается на первый - тогда пробуеш на след. и т.д.

еслиб юзал уже готовое (sendmail например (http://www.sendmail.org/))
то это все вываливается только в запуск его как процесса.
то что ты отдевелопиш свое для вычисления и копания эимксов и
потом на низах сам в смтп долбиться будеш - времени нисколько не выиграеш.
мыл система не очень быстра чтоб на этом выиграть время.

а если уже по проторенной дорожке, то например в пелах
это будет выглядеть как (пример куска спам-рассылки):


$mail_program = "/usr/sbin/sendmail -t";
$c_from_user = "crazy\@microsoft.com";
$c_subject = "ugu";
# while(...)
# {
open (MAIL, "|$mail_program")

lamo опубликован 02-01-2001 11:34 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
твою мать.
повтор:


$mail_program = "/usr/sbin/sendmail -t";
$c_from_user = "crazy\@microsoft.com";
$c_subject = "ugu";
# while(...)
# {
open (MAIL, "|$mail_program") \|\| die "oops."; #\|\| замениш на "или" сишное ...
print MAIL <<__END_OF_MAIL__;
To: $c_user_mail
From: $c_from_user
Subject: $c_subject
kuku ?
__END_OF_MAIL__
close (MAIL);
# }

lamo опубликован 02-01-2001 11:46 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
а про в98 ...
я вообщето все тут про унихи говорил.

если уж совсем приспичило под вин, то
тогда есть неплохой мылсерв с клаент парт
xmail (http://www.xmailserver.org/).
он и на вин встает. вот помоему только на НТ.
можеж серв сам не стартовать, а юзать только
рассыльник.

перлу под вин найдеш на http://www.activestate.com/
.
ну или из сей вызывай.
разницы нет особой. только в количестве строк.


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

Demo_S опубликован 02-01-2001 16:20 MSK     Click Here to See the Profile for Demo_S  Click Here to Email Demo_S     
про яху...
насколько я знаю, перед тем, как отправить через нее смтп, нужно авторизоваться по pop. я в проге так не делал, а в бате есть такая опция, авторизоваться поп перед смпт, и только так можно почту отправлять, если конечно сначала отправлять, а не получать. иначе, просто вначале получаешь почту, а потом отправля через сптм что душе угодно..
alpeugene опубликован 06-01-2001 17:37 MSK     Click Here to See the Profile for alpeugene  Click Here to Email alpeugene     
Спасибо за ответы!!! Я уж думал,что проблема с DNS Resolver-ом в Win98 не решаема ....
Однако,по совету Lamo(персональное дзякуй)скачал исходники Xmailer - a для Win2K ,кое-что подправил и заработало,правда с глюками(контрол на Делфи работает лучше)-
на некоторых доменах полностью зависает,кое -что не находит,но в общем и целом думаю,добью...
Хотя подсказали мне тут еще один способ:
В Win2K есть целое DNS API,включая почти универсальную функцию DNSQuery.
Microsoft распространяет Update,позволяющее
использовать данное API в том числе и для Win98,правда скачать надо все обновление(всего 300 MB)А мне надо только 6 файлов:
iphlpapi.h,windns.h,iphlpapi.dll,windns.dll и
2 lib : Dnsapi.lib и Iphlpapi.lib
Может кто сбросит по мылу на alpeugene@hotmail.com ?!!!
Дело в том что программу ,реализующую данное API я уже скачал и мне не хватает только 6 этих файлов.
Еще раз Всем спасибо и с праздниками !!!
Zoro опубликован 11-01-2001 22:20 MSK     Click Here to See the Profile for Zoro  Click Here to Email Zoro     
Вы че ребята, этому парню голову марочете:((
Ползуйся WinSocket(CSocket),functions " 1:Create(),2:Connect(strServerName),3: Send(strText,intstrTextLenght)"
Пример кода:

CSocket m_wsSMTPServer;
m_wsSMTPServer.Create();
if(!m_wsSMTPServer.Connect(strServName,25))
{
AfxMessageBox( _T( "Not Connected"));
return;
}

Вместо strServerName напиши умя майл сервера,того сервера, через который ты подключон к интернет,(ISP: "yandex.ru" , EmailServ:"mail.yandex.ru" )
а потом через function Send(str,int) пошли
"MAIL From:" + "strFrom" +
"RCPT TO:" + strTO+ "DATA :"

Потом:

CTime time=time.GetCurrentTime();
CString sDate;
sDate = time.Format( "%a, %d %b %y %H:%M:%S %Z" );

CString sHeader;
sHeader.Format( "Date: %s\r\n"\
"From: %s\r\n"\
"To: %s\r\n"\
"Subject: %s\r\n"\
"Content-Type: %s \r\n",
(LPCTSTR)sDate,
(LPCTSTR)strFrom,
(LPCTSTR)strTo,
(LPCTSTR)strSub,
"text/html;");

m_wsSMTPServer.Send( (LPCTSTR)sHeader, sHeader.GetLength() );

Потом уже пошли текст сообщение, или HTML code, еслу хочещ послать (html Email(Page)). Ну Все ПОКА

lamo опубликован 12-01-2001 00:54 MSK     Click Here to See the Profile for lamo  Click Here to Email lamo     
"text/html"

зы.
)))

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.