Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.17;
Скачать: CL | DM;

Вниз

Как отправить email через API?   Найти похожие ветки 

 
chernoruk ©   (2002-04-11 15:21) [0]

Какие для этого надо использовать библиотеки?


 
SerVS ©   (2002-04-11 17:16) [1]

А поискать слабо?
MAPI


 
sergio777   (2002-04-12 20:33) [2]

MAPI - фигня.
1)Если в почтовом клиенте установлено несколько аккаунтов, то клиент просит сначала зайти в один из них и только потом отправляет письмо (а данный юзер может и не быть юзером аккаунтов и не знать пароля);
2)на половине компов почтовый клиент вообще не настроен или его нет;
3)MAPI использует настройки SMTP и POP серверов почтового клиента. А если нужно использовать другой SMTP и POP-сервер, а не тот, что в почтовом клиенте?

Есть кусок на C, может кто поможет переписать его в дельфийско-паскалевском виде?

void SendMail(void)
{
SOCKET nSMTPServerSocket;
struct sockaddr_in smtp_address;
int nConnect;
int iLength;
int iMsg = 0;
int iEnd = 0;
BYTE sBuf[4096];

char *MailMessage[] =
{
"HELO axel.ru\r\n",
"MAIL FROM:<vasya_pupkin@cool_mail.ru>\r\n", // адрес отправителя
"RCPT TO:<purpe@usa.net>\r\n", // адресок получателя
"DATA\r\n",
"Самое крутое сообщение!!!\r\n\r\n.\r\n", // тело сообщения
"QUIT\r\n",
NULL
};

nSMTPServerSocket = socket(PF_INET, SOCK_STREAM, 0);

if(nSMTPServerSocket != INVALID_SOCKET) {
smtp_address.sin_family = AF_INET;
// далее вносим в структуру IP-адрес сервера, через который пойдёт письмо
smtp_address.sin_addr.s_addr = inet_addr("212.96.192.1");
smtp_address.sin_port = htons(25);

nConnect = connect(nSMTPServerSocket, (PSOCKADDR)&smtp_address,
sizeof(smtp_address));

if(nConnect) {
}
else {
do {
iLength = recv(nSMTPServerSocket, (LPSTR)sBuf+iEnd, sizeof(sBuf)-iEnd, 0);
iEnd += iLength;
sBuf[iEnd] = "\0";
send(nSMTPServerSocket, (LPSTR)MailMessage[iMsg], strlen(MailMessage[iMsg]), 0);
iMsg++;
} while(MailMessage[iMsg]);
}

closesocket(nSMTPServerSocket);
}
}



 
Doom ©   (2002-04-12 23:42) [3]

А это из какого Си (версия)?
И где здесь авторизация? Она ведь нужна, насколько я знаю.


 
sergio777   (2002-04-14 20:46) [4]

Авторизация для 99% SMTP серверов (для отправки писем) не нужна. Авторизация как правило требуется только для POP-серверов (для приема писем). В данном примере речь идет только об отправке. Из какого Си - хрен знает, я этот пример откопал где-то здесь же на форуме.
Просто help по сокетам в SDK какой-то левый, ничего не понять. Если nSMTPServerSocket = socket(PF_INET, SOCK_STREAM, 0) я еще смог переписать (причем nSMTPServerSocket у меня просто dword), то как переписать connect не пойму кагого типа переменные там используются.


 
Fantasist   (2002-04-15 08:20) [5]


> Авторизация для 99% SMTP серверов (для отправки писем) не
> нужна


Я тоже так раньше думал. Но выясняется, на практике, что этот процент гораздо меньше. А зачем через API? Хорошие компоненты есть. А так действительно либо MAPI, либо WinSocks+SMTP.


 
sergio777   (2002-04-15 11:27) [6]

Fantasist А зачем через API?

А потому что прога не VCL-ная.

Но выясняется, на практике, что этот процент гораздо меньше

В данном случае сервер-то мой, через который я буду посылать письма и настроен он соответственно. Поэтому мне и надо указывать его, а не тот что в настройках почтового клиента у юзера.


 
chernoruk ©   (2002-04-15 17:06) [7]

слушайте, а что такое почтовый клиент на компе?


 
Fantasist   (2002-04-16 08:46) [8]


> В данном случае сервер-то мой, через который я буду посылать
> письма и настроен он соответственно. Поэтому мне и надо
> указывать его, а не тот что в настройках почтового клиента
> у юзера.


Известно, что некоторые провайдеры не разрешают отсылать письма через другой(не провайдерский) сервер.


> А потому что прога не VCL-ная.

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



Страницы: 1 вся ветка

Текущий архив: 2002.06.17;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
14-55267
Fellomena
2002-05-13 18:51
2002.06.17
Поставка прог. продукта заказчику. Что использовать ISO, ГОСТ ?


8-55229
Lahtak
2002-02-01 18:17
2002.06.17
Создание своего AVI - файла


6-55256
esprit_bel
2002-04-08 05:32
2002.06.17
IP


1-55100
EN
2002-06-04 18:22
2002.06.17
Проблемы с печатью текста в FastReport


1-55102
Alexis2k
2002-06-06 10:26
2002.06.17
Как встроить VCL компонент в PopUpMenu?