public virtual void EmailHesabıEkle(EmailHesabı emailHesabı) { if (emailHesabı == null) { throw new ArgumentNullException("emailHesabı"); } emailHesabı.Email = GenelYardımcı.BoşKontrol(emailHesabı.Email); emailHesabı.GörüntülenenAd = GenelYardımcı.BoşKontrol(emailHesabı.GörüntülenenAd); emailHesabı.Host = GenelYardımcı.BoşKontrol(emailHesabı.Host); emailHesabı.KullanıcıAdı = GenelYardımcı.BoşKontrol(emailHesabı.KullanıcıAdı); emailHesabı.Şifre = GenelYardımcı.BoşKontrol(emailHesabı.Şifre); emailHesabı.Email = emailHesabı.Email.Trim(); emailHesabı.GörüntülenenAd = emailHesabı.GörüntülenenAd.Trim(); emailHesabı.Host = emailHesabı.Host.Trim(); emailHesabı.KullanıcıAdı = emailHesabı.KullanıcıAdı.Trim(); emailHesabı.Şifre = emailHesabı.Şifre.Trim(); emailHesabı.Email = GenelYardımcı.MaksimumUzunlukKontrol(emailHesabı.Email, 255); emailHesabı.GörüntülenenAd = GenelYardımcı.MaksimumUzunlukKontrol(emailHesabı.GörüntülenenAd, 255); emailHesabı.Host = GenelYardımcı.MaksimumUzunlukKontrol(emailHesabı.Host, 255); emailHesabı.KullanıcıAdı = GenelYardımcı.MaksimumUzunlukKontrol(emailHesabı.KullanıcıAdı, 255); emailHesabı.Şifre = GenelYardımcı.MaksimumUzunlukKontrol(emailHesabı.Şifre, 255); _emailDepo.Ekle(emailHesabı); _olayYayınlayıcı.OlayEklendi(emailHesabı); }
public virtual int BildirimGönder(MesajTeması mesajTeması, EmailHesabı emailHesabı, IEnumerable <Token> tokens, string emailAdresine, string isime, string ekDosyaYolu = null, string ekDosyaAdı = null, string emailAdresineCevap = null, string ismeCevap = null, string emailAdresinden = null, string isimden = null, string konu = null) { if (mesajTeması == null) { throw new ArgumentNullException("mesajTeması"); } if (emailHesabı == null) { throw new ArgumentNullException("emailHesabı"); } var bcc = mesajTeması.BccEmailAdresleri; if (String.IsNullOrEmpty(konu)) { konu = mesajTeması.Konu; } var gövde = mesajTeması.Gövde; //Replace subject and body tokens /* * var subjectReplaced = _tokenizer.Replace(konu, tokens, false); * var bodyReplaced = _tokenizer.Replace(gövde, tokens, true); */ //limit name length isime = GenelYardımcı.MaksimumUzunlukKontrol(isime, 300); var email = new BekleyenMail { Öncelik = BekleyenMailÖnceliği.Yüksek, Kimden = !string.IsNullOrEmpty(emailAdresinden) ? emailAdresinden : emailHesabı.Email, KimdenAd = !string.IsNullOrEmpty(isimden) ? isimden : emailHesabı.GörüntülenenAd, Kime = emailAdresine, KimeAd = isime, Yanıtla = emailAdresineCevap, YanıtlaAd = ismeCevap, CC = string.Empty, Bcc = bcc, Konu = konu, //tokenizer Gövde = gövde, //tokenizer EkDosyaYolu = ekDosyaYolu, EkDosyaAdı = ekDosyaAdı, EkYüklemeId = mesajTeması.EkİndirmeId, OluşturulmaTarihi = DateTime.UtcNow, EmailHesapId = emailHesabı.Id, ŞuTarihdenÖnceGönderme = !mesajTeması.GöndermedenÖnceGeciktir.HasValue ? null : (DateTime?)(DateTime.UtcNow + TimeSpan.FromHours(mesajTeması.GecikmePeriodu.Saatler(mesajTeması.GöndermedenÖnceGeciktir.Value))) }; _bekleyenMailServisi.BekleyenMailEkle(email); return(email.Id); }
public virtual void EmailHesabıSil(EmailHesabı emailHesabı) { if (emailHesabı == null) { throw new ArgumentNullException("emailHesabı"); } if (TümEmailHesaplarıAl().Count == 1) { throw new Hata("Bu E-mail hesabını silemezsiniz.En azından bir E-Mail hesabı bulunmalıdır."); } _olayYayınlayıcı.OlaySilindi(emailHesabı); _emailDepo.Sil(emailHesabı); }
public virtual void SendEmail(EmailHesabı emailHesabı, string konu, string gövde, string adresinden, string isminden, string adresine, string ismine, string cevapAdresi = null, string cevapAdı = null, IEnumerable <string> bcc = null, IEnumerable <string> cc = null, string ekDosyaYolu = null, string ekDosyaAdı = null, int ekİndirmeId = 0, IDictionary <string, string> basşlıklar = null) { var mesaj = new MailMessage(); //from, to, reply to mesaj.From = new MailAddress(adresinden, isminden); mesaj.To.Add(new MailAddress(adresine, ismine)); if (!String.IsNullOrEmpty(cevapAdresi)) { mesaj.ReplyToList.Add(new MailAddress(cevapAdresi, cevapAdı)); } if (bcc != null) { foreach (var address in bcc.Where(bccValue => !String.IsNullOrWhiteSpace(bccValue))) { mesaj.Bcc.Add(address.Trim()); } } if (cc != null) { foreach (var address in cc.Where(ccValue => !String.IsNullOrWhiteSpace(ccValue))) { mesaj.CC.Add(address.Trim()); } } mesaj.Subject = konu; mesaj.Body = gövde; mesaj.IsBodyHtml = true; if (basşlıklar != null) { foreach (var başlık in basşlıklar) { mesaj.Headers.Add(başlık.Key, başlık.Value); } } if (!String.IsNullOrEmpty(ekDosyaYolu) && File.Exists(ekDosyaYolu)) { var ek = new Attachment(ekDosyaYolu); ek.ContentDisposition.CreationDate = File.GetCreationTime(ekDosyaYolu); ek.ContentDisposition.ModificationDate = File.GetLastWriteTime(ekDosyaYolu); ek.ContentDisposition.ReadDate = File.GetLastAccessTime(ekDosyaYolu); if (!String.IsNullOrEmpty(ekDosyaYolu)) { ek.Name = ekDosyaYolu; } mesaj.Attachments.Add(ek); } if (ekİndirmeId > 0) { var download = _downloadServisi.DownloadAlId(ekİndirmeId); if (download != null) { if (!download.UseDownloadUrl) { string fileName = !String.IsNullOrWhiteSpace(download.DosyaAdı) ? download.DosyaAdı : download.Id.ToString(); fileName += download.Uzantı; var ms = new MemoryStream(download.DownloadBinary); var ek = new Attachment(ms, fileName); //string contentType = !String.IsNullOrWhiteSpace(download.ContentType) ? download.ContentType : "application/octet-stream"; //var ek = new Attachment(ms, fileName, contentType); ek.ContentDisposition.CreationDate = DateTime.UtcNow; ek.ContentDisposition.ModificationDate = DateTime.UtcNow; ek.ContentDisposition.ReadDate = DateTime.UtcNow; mesaj.Attachments.Add(ek); } } } //send email using (var smtpClient = new SmtpClient()) { smtpClient.UseDefaultCredentials = emailHesabı.VarsayılanKimlikBilgileriniKullan; smtpClient.Host = emailHesabı.Host; smtpClient.Port = emailHesabı.Port; smtpClient.EnableSsl = emailHesabı.SslEtkin; smtpClient.Credentials = emailHesabı.VarsayılanKimlikBilgileriniKullan ? CredentialCache.DefaultNetworkCredentials : new NetworkCredential(emailHesabı.KullanıcıAdı, emailHesabı.Şifre); smtpClient.Send(mesaj); } }