Office 365 kullanan bir hesap üzerinden c# üzerinden mail gönderimi yaparken 535 5.7.139 Authentication unsuccessful, SmtpClientAuthentication is disabled for the Tenant hatası alırsanız Office 365 üzerinde bazı işlemler yapmanız gerekmektedir.
Öncelikle C# kodu:
class Program
{
static void Main(string[] args)
{
MailMessage msg = new MailMessage();
msg.To.Add(new MailAddress("serkansonmez16@gmail.com", "Serkan"));
msg.From = new MailAddress("mailuser@contoso.com", "support");
msg.Subject = "This is a Test Mail";
msg.Body = "This is a test message using Exchange OnLine";
msg.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.UseDefaultCredentials = false ;
client.Credentials = new System.Net.NetworkCredential("mailuser@contoso.com", "MailPassword");
client.Port = 587; // You can use Port 25 if 587 is blocked (mine is!)
client.Host = "smtp.office365.com";
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
try
{
client.Send(msg);
//lblText.Text = "Message Sent Succesfully";
}
catch (Exception ex)
{
//lblText.Text = ex.ToString();
Console.WriteLine(ex.Message);
Console.Read();
}
}
}
Power Shell üzerinde yapılacaklar:
Önce Power Shell üzerinde exchange 365'e erişim için link üzerinden aşağıdaki kod çalıştırılır.
1-) https://www.powershellgallery.com/packages/ExchangeOnlineManagement/2.0.5
PS> Install-Module -Name ExchangeOnlineManagement -RequiredVersion 2.0.5
2- Admin kullanıcısına ait mail adresi girilecek, komutu çalıştırınca kullanıcı şifresini girmek gerekiyor.
Doğru şifreyi girdikten sonra Exchange'e ait tüm komutlar aktif hale geliyor.
PS>Connect-ExchangeOnline -UserPrincipalName adminmailaddress@contoso.com
3- Domain üzerinde SMTP aktif hale getirilmeli, aşağıdaki komut çalıştırılacak.
PS> Set-TransportConfig -SmtpClientAuthenticationDisabled $true
4- Gönderim yapılacak mail adresi için SMTP aktif hale getiriliyor.
PS> Set-CASMailbox -Identity sendingMail@contoso.com -SmtpClientAuthenticationDisabled $false
5- Yukarıdaki işlemleri yapsanız da hata almaya devam edebilirsiniz. Son hatanın düzeltilmesi için
TLS client gönderim için True yapılıyor.
PS> Set-TransportConfig -AllowLegacyTLSClients $true
Hiç yorum yok:
Yorum Gönder