2009-08-28 18 views
11

Şirketimizin exchange sunucusu aracılığıyla C# kodundan bir e-posta göndermeye çalışıyorum. Bunu çalıştırdığınızdaNasıl smtp kullanmadan değişim sunucusu üzerinden e-posta gönderilir?

System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("exchangebox1.mycompany.com"); 
System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage("[email protected]", 
       "[email protected]", 
       "title here", 
       "body here"); 
      client.Send(msg); 

Ben SmptException diyerek olsun "iletim kanalını kapatan Servis mevcut değil. Sunucu yanıtı 4.3.2 Servis mevcut değil idi, iletim kanalını kapatma". Bu SMTP anlamında yorumlayarak ediyorum

bizim değişim kutuyu etkin ve yerli Exchange Server kullanmanız gerektiğini posta göndermeye komutları değildir. Bu doğru mu, yoksa SMTP daima çalışır mı?

Ayrıca, SMTP yoluyla ana göndermek için değişim sunucusu yalnızca izin verilen belirli bilgisayarlara/kullanıcılara yapılandırılmamış olabilir mümkün mü?

nasıl SMTP kullanmadan Exchange Server aracılığıyla posta gönderebilir?

Teşekkürler.

+0

var mı iletiyi e-posta olarak gönderdiğiniz hesapta etkinleştirdiniz mi? Kimlik doğrulama kullanmadan söz konusu hesapla e-posta göndermenize izin vermek için Exchange yöneticisinin bu hesapta ayarlaması gereken bir şey olduğunu düşünüyorum. –

+0

Teşekkürler, deneyeceğim ve öğreneceğim. –

cevap

7

Sen nasıl uygulanacağı WCF Exchange Server Mail Transport bir örnek kullanabilirsiniz o Gönderme yöntemini çağıran Özellikle bir uygulama bir mesaj gönderir

diyor mesaj gönderme konusunda Here

, olduğunu Geçerli çıkış kanalı, açık olmalıdır. çıkış kanalı bir dizeye mesajı serializes ve Taslaklar klasöründe mesajı yaratır. , e-posta alanlarındaki uygun değerleri ayarlar. İleti, oluşturulduğunda, Giden Kutusu'na taşınır. Bu cihaz veya Exchange Web masaüstünde Hizmetler aracılığıyla üzerine CEMAPI yoluyla gerçekleşir. aygıtında, Giden Kutusu içindeki iletiler, ActiveSync tarafından tanımlandığı gibi diğer giden iletilerle eşitlenen 'dır.

3

deneyin Göndermeden önce bu iki satırı ekleyerek:

client.UseDefaultCredentials = true; 
client.EnableSsl = true; 

Orada yüzden Google'dan biraz hile edeceğiz hiçbir kimlik olmanın büyük olasılıkla bir sorun var ...
From dailycode.net

+0

Yardım için teşekkürler. Korkarım aynı istisnayı alıyorum. –

4

Yeni Exchange Web Hizmetleri Managed API 1.0'ı kullanabilirsiniz. En iyi çözüm gibi görünüyor. , bağlantıyı kontrol eder.

http://msdn.microsoft.com/en-us/library/dd637749(v=exchg.80).aspx
https://blogs.technet.com/b/exchange/archive/2009/04/21/3407328.aspx

yanı dağıtım listelerini kabul eder kabul ediyoruz.

2.API 0 sürümü
http://msdn.microsoft.com/en-us/library/office/dd633709.aspx

+0

"Bu Konu Artık Mevcut Değil", oraya gitmeyin! – CSharper

+0

Sadece küçük bir bağlantı çürümesi. Bir alternatifi değiştirdim ve API'nin 2.0 sürümüne bir bağlantı ekledim. – EBarr

0

Bu eski iplik olduğunu biliyorum, ancak şeyiyle, sen Microsoft Exchange WebServisleri'dir Nuget paketi düşünmelisiniz: https://www.nuget.org/packages/Microsoft.Exchange.WebServices

ExchangeService service = new ExchangeService(); 
service.AutodiscoverUrl("[email protected]"); 

EmailMessage message = new EmailMessage(service); 
message.Subject = "my subject"; 
message.Body = "my body"; 
message.ToRecipients.Add("[email protected]"); 
message.Save(); 

message.SendAndSaveCopy(); 
İlgili konular