Отправка почты из C# приложения
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Отправка почты из C# приложения Expand / Collapse
Автор
Сообщение
01.11.2006 17:51
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
Добрый вечер.

Есть задача отправки писем из приложения, решена на С++ через SIMPLE MAPI. Но начальство хочет чтобы это было сделано на С#, соответственно через FW.

Не подскажет ли кто нибудь как такую проблему решить в .NET? SMTPClient кажется не подойдет, так как host мне неизвестен.

При использовании SIMPLE MAPI применялся настроенный по умолчанию почтовый клиент и соответственно SMTP host был не нужен.

Или я неправильно понял смысл использования SMTPClient и можно обойтись без host'а?

PS: C# - Visual Studio 2005. FW 2.0

Сообщ. #906783
01.11.2006 18:13
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 27.02.2008 16:42
Сообщ.: 43, Visits: 1 569
Мoжет быть этo пoмoжет:
http://www.eggheadcafe.com/articles/20030316.asp
Сообщ. #906785
02.11.2006 10:46
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
К сожалению вот это:

public class SmtpDirect

{

 ... 

     public static string SmtpServer;

      public static bool Send(MailMessage message)

      {

           IPHostEntry IPhst = Dns.Resolve(SmtpServer); // Вызывает ошибку NOT BE NULL, если SmtpServer неуказан

       ...

     

не позволит использовать Ваш ресурс :( Т.к. проблема в том, что я не знаю где будет использоваться мое приложение, и не могу жестко прописать один SMTP host. Настройку приложение не предусматривает, поэтому я и остановился на SIMPLE MAPI. (Естественно в приложении идет проверка на установку в системе mapi32.dll ) Но это в С++, а вот что делать в С# пока не пойму. Да и можно ли .NET пользоваться MAPI?

Пробовал подключать MAPI как предлагают на pinvoke.net ( спасибо bazile! ) все вроде получилось, ошибок не выдает, но и сообщение не отсылается. Есть предположение, что я неправильно объявляю и открываю сессию:

...

IntPtr session = IntPtr.Zero;

uint error = MAPI32.MAPILogon( IntPtr.Zero,null, null,MAPI32.MAPI_NEW_SESSION, 0, ref session );

т.к. после выполнения MAPILogon session остается пустой.

Если кто-то заинтересуется, могу предоставить весь код.

Сообщ. #906805
02.11.2006 11:01
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Я на 100% уверен что MAPI можно использовать из .NET. Microsoft приложила все усилия чтобы управляемый код мог использовать неуправляемый.
Сообщ. #906807
02.11.2006 11:32
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
Ок, ковыряем дальше. :)
Сообщ. #906813
02.11.2006 12:51
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 06.07.2008 10:37
Сообщ.: 236, Visits: 1 734
Вобщем сам сделать так и не смог, но - спасибо многоуважаемому NetMaster' у Thomas' y Scheidegger' y c CodeProject' а. (http://www.codeproject.com/cs/internet/simplemapidotnet.asp)

Все работает отлично, пока не до конца во всем разобрался, но там активно используется маршализация.

Сообщ. #906816
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 12:02