Вот простой консольный проект, демонстрирующий эти шаги. Для начала скачиваем и устанавливаем данный API SDK (x86, x64). Потом добавляем ссылку к проекту и подключаем. А дальше, с помощью нескольких строк пишем код, отправляющий нам пресловутый "Hello World!".
using System; using System.IO; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Text; using Microsoft.Exchange.WebServices.Data; namespace ExchangeMail { class Program { public static void Main(string[] args) { String Mail_, Subject_, Body_; Mail_ = "Lastname.Firstname@yourmailserver.ru"; Subject_ = "Hello World"; Body_ = "Hello World, I'm here"; ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); ServicePointManager.ServerCertificateValidationCallback += RemoteCertificateValidationHandler; service.Url = new Uri("https://YourExchangeServer/EWS/Exchange.asmx"); EmailMessage message = new EmailMessage(service); message.Subject = Subject_; message.Body = Body_; message.ToRecipients.Add(Mail_); message.SendAndSaveCopy(); } private static bool RemoteCertificateValidationHandler(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; //Игнорировать проверку и продолжить } } }RemoteCertificateValidationHandler необходим для того, чтобы игнорировать проверку сертификата, который программа пытается запросить у Exchange. Данный метод был найден на просторах интернета, в MSDN я об этом ничего не нашёл. Но если Вы хотите, скачайте и установите сертификат вручную.
а зачем так мудрить?
ОтветитьУдалитьну разве что себе копию положить (AndSaveCopy)
а тут и outlook не нужен:
using System.Net.Mail;
using System.Net;
SmtpClient Smtp = new SmtpClient("192.168.1.1", 25);
// Smtp.Credentials = new NetworkCredential("xxx@mail.ru", "password");
// в АД не нужно Credentials
//Smtp.EnableSsl = false; // без сертификатов
MailMessage Message = new MailMessage();
Message.From = new MailAddress("Вася пупкин");// от кого
Message.To.Add(new MailAddress(masha@mail.ru)); // кому
// Message.To.Add(new MailAddress(masha2@mail.ru)); // еще кому-нибудь
Message.IsBodyHtml = true;// будем рисовать HTML
Message.Body =".hr."+ Text+".br..hr.Не отвечайте на это письмо указанный обратный адрес не существует!!";
Smtp.Send(Message); //отправка
Да, спасибо за код, но... Целью было отправить сообщение с нашего почтового сервера (у получателя должен засветиться необходимый адрес отправителя), у отправителя действительно должна остаться копия отправленного сообщения (будет возможность доказать, что он таки отправлял), также у пользователя есть возможность получить с сервера адреса тех, кто прочитал сообщение (в Outlook это называется "Отслеживание", кажется). А так да, если бы мне нужно было просто отправить сообщение, то я так бы и поступил))
УдалитьДа и вроде ничего мудрёного я не сделал. Код довольно простой и понятный. Ну разве что немного больше, чем Ваш))