отправка электронной почты из кода C ++ - PullRequest
1 голос
/ 06 июля 2011

Я делаю консольное приложение, которое должно отправлять электронную почту, когда меня об этом спрашивают. Как я могу это сделать? Хотя я попробовал эту ссылку , она не удалась, потому что вам нужно дополнительное программное обеспечение для этого. И есть задержка около 10 минут, когда я на самом деле получаю электронное письмо. В чем может быть проблема?

Это диалоговое окно, отображаемое при запуске первого кода

enter image description here

Есть ли другой выход?

Существуют ли ссылки, объясняющие пошаговую отправку электронной почты из программы на c ++, объясняющую функцию, используемую в коде.

Ответы [ 5 ]

4 голосов
/ 06 июля 2011

Дайте VMime попробовать!

(Отправка почты не является встроенной функцией языка, вам придется использовать какую-то библиотеку.)

2 голосов
/ 07 июля 2011

Для отправки электронной почты вы можете открыть сетевой сокет TCP на почтовый сервер получателя, например, smtpmail.example.com, порт 25.

Подробнее о программировании сокетов Windows см. http://www.snible.org/winsock/ или другие учебные пособия.

Затем запишите текст в этот сокет в соответствии с протоколом SMTP:

HELO mymachine_ipaddress_or_dnsname
MAIL FROM:<me@somewhere.net>
DATA

From: <me@somewhere.net>
To: <you@example.com>
Subject: Test message

Hello, greetings.
.
QUIT

Затем закройте розетку. На самом деле в SMTP нет встроенной аутентификации отправителя ...

2 голосов
/ 06 июля 2011

Если вы просто хотите открыть почтовое окно в почтовом агенте по умолчанию, используйте ShellExecute:

ShellExecute(
  NULL,
  NULL,
  TEXT("mailto:foo@example.com"),
  NULL,
  NULL,
  SW_SHOWNORMAL);

Дополнительно: связанная тема: C ++Пример SMTP .

1 голос
/ 06 июля 2011

libCurl - легко переносимая сетевая библиотека C / C ++, поддерживающая SMTP. На их сайте образец .

0 голосов
/ 06 июля 2011

вы можете использовать CDO для этого. Я думаю, что это обходит объектную модель внешнего вида. Таким образом, вы не получите этот предупреждающий диалог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...