Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Вниз

Как отправить 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.06.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.006 c
1-55139
inc(665)
2002-06-04 11:36
2002.06.17
Массив в функцию


1-55162
Skynet
2002-06-04 03:41
2002.06.17
Использование TListView в режиме vsReport


1-55210
Аня
2002-06-05 12:47
2002.06.17
Создание справочной системы


1-55183
space lord
2002-06-05 00:19
2002.06.17
Завтра зачет по Delphi help pleazzzzzzz.Водиться ряд целых чисел.


4-55362
Belyaev
2002-04-15 15:26
2002.06.17
ProgressBar and XPStyle





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский