Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Отправка электронной почты / 16 сообщений из 16, страница 1 из 1
08.09.2015, 14:38
    #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
08.09.2015, 14:44
    #39045886
Зимаргл
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка электронной почты
Т.е нагуглил 2 примера, ничего не понял, напишите за меня )

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

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

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

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

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


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

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

Кстати на PowerShell есть тоже скриптинг этой задачи. Не так изящно но всё-же. Лучше чем ВБСкрипт.
...
Рейтинг: 0 / 0
08.09.2015, 19:07
    #39046181
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка электронной почты
...
Рейтинг: 0 / 0
08.09.2015, 20:10
    #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
08.09.2015, 20:14
    #39046226
Дмитрий77
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка электронной почты
vadipokЕсть программа, она рабочая, написанная vbs.
Попытался написать на VC++
Вообще я тебе скажу так.
Для всех этих объектных моделей (COM то бишь) оптимальный язык это VB6 (не .Net и не C++).
...
Рейтинг: 0 / 0
09.09.2015, 14:23
    #39047005
ДохтаР
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отправка электронной почты
maytonvadipok, когда-то давным давно когда деревья были высокие почту можно было отправить командой

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


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

Меня - да.

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

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

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


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