powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Отправка электронной почты
16 сообщений из 16, страница 1 из 1
Отправка электронной почты
    #39045870
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, коллеги!
Помогите пожалуйста отправить электронную почту.

Есть программа, она рабочая, написанная vbs.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
    sBody = Wscript.Arguments.Named.Item("text") 'для передачи параметра text необходимо вызвать так *.vbs /text: "Текст письма"
    sTo = "babacov_babac@mail.ru"    'Кому(можно заменить значением из ячейки - sTo = Range("A1").Value)
    sSubject = "<Уведомление с рабочего компьютера>"    'Тема письма(можно заменить значением из ячейки - sSubject = Range("A2").Value)
	'Текст письма(можно заменить значением из ячейки - sBody = Range("A3").Value)
'	If sBody="" then set sBody = "Расчет моделей успешно выполнен":
'    sAttachment = "C:/Temp/Книга1.xls"    'Вложение(полный путь к файлу. Можно заменить значением из ячейки - sAttachment = Range("A4").Value)

    On Error Resume Next
    Set objOutlookApp = CreateObject("Outlook.Application")
    objOutlookApp.Session.Logon("Outlook")
    Set objMail = objOutlookApp.CreateItem(0)   'создаем новое сообщение
    'если не получилось создать приложение или экземпляр сообщения - выходим
    If Err.Number <> 0 Then Set objOutlookApp = Nothing: Set objMail = Nothing:
    'создаем сообщение
    With objMail
        .To = sTo 'адрес получателя
        .Subject = sSubject 'тема сообщения
        .Body = sBody 'текст сообщения
'        .Attachments.Add sAttachment
        .Send 'Display, если необходимо просмотреть сообщение, а не отправлять без просмотра
    End With



Попытался написать на VC++
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
#include "stdafx.h"
#include <tchar.h>

#include "easendmailobj.tlh"
using namespace EASendMailObjLib;

int _tmain(int argc, _TCHAR* argv[])
{
    ::CoInitialize( NULL );

    IMailPtr oSmtp = NULL;
    oSmtp.CreateInstance( "EASendMailObj.Mail");
    oSmtp->LicenseCode = _T("TryIt");
    
    //Set your sender email address
    oSmtp->FromAddr = _T("babacov_babac@vnutr_mail.ru");
    //Add recipient email address
    oSmtp->AddRecipientEx( _T("babacov_babac@vnutr_mail.ru"), 0 );
    //Set email subject
    oSmtp->Subject = _T("direct email from Visual C++ project");
    //Set email body
    oSmtp->BodyText = _T("this is a test email sent from Visual C++ project directly");
    
    //Set smtp server address to ""
    oSmtp->ServerAddr = _T("");
   
    //Do not set user authentication
    //Do not set SSL connection

    _tprintf(_T("Start to send email directly ...\r\n" ));
  
    if( oSmtp->SendMail() == 0 )
    {
        _tprintf( _T("email was sent successfully!\r\n"));
    }
    else
    {
        _tprintf( _T("failed to send email with the following error: %s\r\n"),
            (const TCHAR*)oSmtp->GetLastErrDescription());
    }

    if( oSmtp != NULL ) oSmtp.Release();

	Sleep(50000);

    return 0;
}



Выходит довольно распространённая ошибка:
Код: plaintext
1.
421 4.3.2 Service not available



Как отправить почту без аунтефикации в почтовых серверах?
Помогите пожалуйста, заранее благодарен.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39045886
Зимаргл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Т.е нагуглил 2 примера, ничего не понял, напишите за меня )

Списано отсюда
https://www.emailarchitect.net/easendmail/ex/vc/13.aspx
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046028
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зимаргл,

Не, вообще то отсюда.

https://www.emailarchitect.net/easendmail/dev/vc.asp
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046041
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зимаргл,

И почему это нагуглил, 1-й пример рабочий.
Который показывает, что можно сделать теоритически то что хотим.
2-й выложил оригинал, думаю мой извращенное решение никого тут не интересует.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046067
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем тебе Outlook? В виндовсе есть объект CDO.Message. Прекрасно почту шлет. Гугли. Например тут почитай
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046073
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TВ виндовсе есть объект CDO.Message. Прекрасно почту шлет.
Поддерживаю.
Хотя он не умеет SSL+STARTTLS на обычно 587 порт (Net.Mail умеет).
В принципе обычный SSL на 465 порт как правило достаточно.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046164
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipok, когда-то давным давно когда деревья были высокие почту можно было отправить командой

Код: plsql
1.
$ sendmail user@example.com  < /tmp/email.txt


Тебя восхищает минимализм такого решения?

Меня - да.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046172
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТебя восхищает минимализм такого решения?
Восхитительно, только (если не ошибаюсь) в виндовсе sendmail штука не бесплатная для коммерческого использования. Многих это останавливает.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046177
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На гитхабе есть какой-то аналог. Mailsend называется.

Кстати на PowerShell есть тоже скриптинг этой задачи. Не так изящно но всё-же. Лучше чем ВБСкрипт.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046181
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046225
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl http://sourceforge.net/projects/blat/
Использовал довольно долго.
Но там нет SSL и с UTF-8 походу не гладко, в последнем не уверен, м.б. не дочитал опции.
P.S. Без SSL счас почти никак.

Но с отправкой проблем то как раз нет:
cdo.message
system.net.mail

Вот с pop3/imap в этом плане задница, до освоения .Net попыток не делал.
Но в итоге осилил.
POP3+SSL м.б. все таки сделать? Какие соображения?
А про IMAP не разжуете?
На классике это делать есть задница, SSL через API вряд ли просто.

Без SSL есть готовый вариант (тоже долго использовал):
GETMAIL for Windows

Если удалось получить (любым способом), то разбор полученного eml делается опять же через CDO.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39046226
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadipokЕсть программа, она рабочая, написанная vbs.
Попытался написать на VC++
Вообще я тебе скажу так.
Для всех этих объектных моделей (COM то бишь) оптимальный язык это VB6 (не .Net и не C++).
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39047005
ДохтаР
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonvadipok, когда-то давным давно когда деревья были высокие почту можно было отправить командой

Код: plsql
1.
$ sendmail user@example.com  < /tmp/email.txt


Тебя восхищает минимализм такого решения?

Меня - да.

Там в коробке еще есть команда которая
может дописать в конец /tmp/email.txt
другой файл который будет виден в оутлюке как аттач.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39047045
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНа гитхабе есть какой-то аналог. Mailsend называется.

Кстати на PowerShell есть тоже скриптинг этой задачи. Не так изящно но всё-же. Лучше чем ВБСкрипт.

Была вообще такая консольная утилита, blat.
Мощная и простая.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39057046
vadipok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вариант написанный мной рабочий.
Проблема была в доступе на почтовый сервер, как впрочем и подсказывали.
Спасибо, топик можно закрывать.
...
Рейтинг: 0 / 0
Отправка электронной почты
    #39057269
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если в течение суток не будет активности - закроем.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Отправка электронной почты
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]