Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > System::Net::Mail smtp авторизация


Автор: IBS 11.3.2012, 13:43
Задача пройти авторизацию и отправить сообщение. Вроде все просто для этого существует специальная библиотека  System::Net::Mail, под с# подобная библиотека, в плане авторизации, вопросов не вызывает: 
Код

client.Credentials = new NetworkCredential("login","pass");

Но подобная штука в С++ выглядит так:
Код

public:
property ICredentialsByHost^ Credentials {
    ICredentialsByHost^ get ();
    void set (ICredentialsByHost^ value);
}

Возникает вопрос, что делать с этим ICredentialsByHost, второй день вожусь-не могу догнать.
Так ↓↓↓↓↓ , ясен пень, не работает =(
Код

using namespace System::Net::Mail;

SmtpClient^ client = gcnew SmtpClient(L"smtp.list.ru",25);
client->EnableSsl = true;
client->UseDefaultCredentials = false;
client->Credentials = gcnew NetworkCredential(L"login",L"pass");


Подкиньте кто хоть в каком направлении искать

Автор: mes 11.3.2012, 14:09
Цитата(IBS @  11.3.2012,  12:43 Найти цитируемый пост)
Так ↓↓↓↓↓ , ясен пень, не работает =(

а что именно не работает ? ошибка компиляции или не подключается ?

P.S. для вопросов под .net есть отдельный раздел )

Автор: IBS 11.3.2012, 14:38
Цитата

а что именно не работает ? ошибка компиляции или не подключается ?

не компилит на последней строчке

Цитата(mes @  11.3.2012,  14:09 Найти цитируемый пост)
P.S. для вопросов под .net есть отдельный раздел )

Да я его видел =) но меня смутило, что я там не нашел ни одного подраздела С++

Автор: Dem_max 11.3.2012, 15:29
а ты с++ коду ни строчки и не привел

Автор: IBS 11.3.2012, 15:39
Цитата(Dem_max @  11.3.2012,  15:29 Найти цитируемый пост)
а ты с++ коду ни строчки и не привел

??????  smile 
А это:
Код

using namespace System::Net::Mail;
SmtpClient^ client = gcnew SmtpClient(L"smtp.list.ru",25);
client->EnableSsl = true;
client->UseDefaultCredentials = false;
client->Credentials = gcnew NetworkCredential(L"login",L"pass");


До последней строчки компилит. А по поводу последней: это я хотел бы, чтобы она была такая, но в С++ это происходит как-то по другому, я и спрашиваю как??

Автор: Dem_max 11.3.2012, 16:03
а это код на С# (шарп) - это язык платформы NET

Автор: mes 11.3.2012, 16:52
Цитата(IBS @  11.3.2012,  13:38 Найти цитируемый пост)
не компилит на последней строчке

может и сообщением об ошибке поделитесь ?

Добавлено через 39 секунд
Цитата(Dem_max @  11.3.2012,  15:03 Найти цитируемый пост)
это код на С# (шарп) - э

это код c++/cli

Автор: IBS 11.3.2012, 16:59
Dem_max,хватит выносить мне мозг!!!!!
Цитата(Dem_max @  11.3.2012,  16:03 Найти цитируемый пост)
а это код на С# (шарп) - это язык платформы NET

Читай википедию:
Цитата

.NET Framework — программная платформа, выпущенная компанией Microsoft в 2002 году. Основой платформы является исполняющая среда Common Language Runtime (CLR), способная выполнять как обычные программы, так и серверные веб-приложения. NET Framework поддерживает создание программ, написанных на разных языках программирования.


Эта же прога написанная на C# выглядела бы похоже, но вместо "gcnew" - "new", вместо "::" - "." итд.
Все названия классов, библиотек и методов совпадают для всех языков ориентированных под NET( в идеале).

Добавлено @ 17:06
mes, 
Error C2061: синтаксическая ошибка: идентификатор "NetworkCredential"    d:\dnetwork\spamerwf\spamerwf\Form1.h    84

Но это не имеет смыла т.к. я эту строчку для примера написал....в С++ как-то не так это делается

Автор: mes 11.3.2012, 17:11
Цитата(IBS @  11.3.2012,  15:59 Найти цитируемый пост)
в С++ как-то не так это делается

примерно так и делается..

Цитата(IBS @  11.3.2012,  15:59 Найти цитируемый пост)
идентификатор "NetworkCredential"

попробуйте добавить :
using namespace System::Net;

Автор: IBS 11.3.2012, 17:41
mes, ТОЧНЯК, спасибо!!Все работает. Вот образец, если кому пригодится:
Код

                 using namespace System::Net::Mail;
                 using namespace System::Net;

                 SmtpClient^ client = gcnew SmtpClient(L"smtp.list.ru",25);
                 client->EnableSsl = true;
                 client->UseDefaultCredentials = false;
                 client->Credentials = gcnew NetworkCredential(L"login",L"pass");
                 MailMessage^ message = gcnew MailMessage( L"from",L"to",L"Subject",L"Body" );
                 client->Send( message );
                 client->~SmtpClient();


ps зачем,блин, тока в msdn в примерах пишут какие-то странные махинации(риторический вопрос) =)

Тема закрыта=)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)