1-) C# RMOS - Gmail ile mail gönderme 16 haneli uygulama şifre oluşturma
yapılış videosu : https://youtu.be/jwbLw4sMHcA
bunu unutma
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Açıklama : Gmail ile mail göndermek istiyorsanız ; Gmail iki doğrulamayı açtıktan sonra 16 haneli uygulama şifresi oluşturmanız gerekiyor. Ardından yapmanız gereken sadece mail şifresi yerine uygulama şifrenizi yazmanız. basit c# kodu aşağıdadır.
private void button1_Click(object sender, EventArgs e) { var fromAddress = new MailAddress("kendimailim@gmail.com", "From Name"); var toAddress = new MailAddress("gonderilecekmail@gmail.com", "To Name"); const string fromPassword = "16haneliŞifre"; const string subject = "Subject"; const string body = "Body";
var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = true, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { smtp.Send(message); } } |
1. DOSYA GÖNDERMEK İÇİN
public void sendMessage(string fileName) { var fromAddress = new MailAddress("kendimailim@gmail.com", "From Name"); var toAddress = new MailAddress("gonderilecekmail@gmail.com", "To Name"); const string fromPassword = "16haneliŞifre"; const string subject = "Subject"; const string body = "Body";
var smtp = new SmtpClient { Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = true, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) };
var message = new MailMessage(fromAddress, toAddress); message.Subject = subject; message.Body = body;
message.Attachments.Add(new Attachment(fileName));
smtp.Send(message); }
|
önceki stilde buraya kapatıyorduk ama artık bu yok google kaldırmış : https://www.google.com/settings/security/lesssecureapps
BU HATAYI VERİRSE YUKARIDAKİ İŞLEMLERİ UYGULADIK ÇÖZÜLDÜ
SMTP sunucusu güvenli bir bağlantı gerektiriyor veya istemcinin kimliği doğrulanmadı.
Sunucu yanıtı şöyleydi: 5.7.0
Authentication Required. Learn more at
2. ÖZEL FİRMA MAİLLERİ İÇİN GÖNDERİM [HOST DEĞİŞ VE TLS2 yaz]
public void sendMailOzel(string gonderilecekMail, string baslik, string aciklama) { try { string mailroot = ayarlar.getAyarlar(SabitAyarlarEnums.mailRoot); var fromAddress = new MailAddress(mailroot, "Rmos Kalite"); var toAddress = new MailAddress(gonderilecekMail, "Rmos Kalite Kullanıcısı"); string fromPassword = ayarlar.getAyarlar(SabitAyarlarEnums.mailRootSifre); string subject = baslik; string body = aciklama;
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
var smtp = new SmtpClient { Host = "mail.firmaismi.com", //Host = "smtp.gmail.com", Port = 587, EnableSsl = true, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential(fromAddress.Address, fromPassword) }; using (var message = new MailMessage(fromAddress, toAddress) { Subject = subject, Body = body }) { smtp.Send(message); } } catch (Exception ex) {
} }
|
not bu kodu eklersen enablessl true yapabilirsin
ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
veyta
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) =>
{
return cert.Subject.Contains("mail.example.com"); // Sertifika konusunu (Subject) kontrol eder
};