Example #1
0
        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ı);
        }
Example #2
0
        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);
        }
Example #3
0
 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ı);
 }
Example #4
0
        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);
            }
        }