/// <summary> /// /// </summary> /// <param name="guid"></param> /// <returns></returns> public bool SendThankUForSocialSignUpEmail(Guid guid) { var user = bringlyEntities.tblUsers.Where(usr => usr.UserGuid == guid && usr.IsDeleted == false).FirstOrDefault(); if (user == null || user.EmailAddress == null) { return(false); } string currentDomainName = string.Empty; Utilities.Helper.UtilityHelper.GetHostedDomainName(out currentDomainName); string imgSrc = CommonDomainLogic.GetCurrentDomain + CommonDomainLogic.GetImagePath(ImageType.User, "bringlylogoemail.png"); EmailDomain emailDomain = new EmailDomain(); emailDomain.EmailTo = user.EmailAddress; emailDomain.EmailFrom = ConfigurationManager.AppSettings["EmailFrom"]; tblEmailTemplate Template = bringlyEntities.tblEmailTemplates.Where(x => x.TemplateType == "ThankYouSocialSignUp").FirstOrDefault(); if (Template == null) { return(false); } emailDomain.EmailSubject = Template.Subject; emailDomain.EmailBody = Template.Body.Replace("{ToName}", user.FullName).Replace("{hostUrl}", currentDomainName).Replace("{logoUrl}", currentDomainName + "/Templates/images/bringlylogoemail.png"); string emailSendResult = EmailSender.sendEmail(emailDomain); if (!string.IsNullOrEmpty(emailSendResult)) { ErrorLog.LogError(emailSendResult, "send email Error"); return(false); } return(true); }
public static EmailDto MapToDtoModel(this EmailDomain email) { return(new EmailDto { Id = email.Id, Received = email.Received, NumberOfAttachments = email.NumberOfAttachments, SenderEmail = email.SenderEmail, SenderName = email.SenderName, Status = email.Status, Subject = email.Subject, Body = email.Body, ToCurrentStatus = email.ToCurrentStatus, GmailMessageId = email.GmailMessageId, Attachments = email.Attachments.Select(e => e.MapToDtoModel()).ToList() }); }
/// <summary> /// /// </summary> /// <param name="emailAddress"></param> /// <returns></returns> public bool SendUserPassword(string emailAddress) { bool isPasswordSent = false; var user = bringlyEntities.tblUsers.Where(usr => usr.IsDeleted == false && usr.IsVerified == true && usr.EmailAddress == emailAddress).FirstOrDefault(); if (user == null) { return(isPasswordSent); } string password = EncryptionHelper.DecryptText(user.Password, user.EmailAddress); if (string.IsNullOrEmpty(password)) { return(false); } EmailDomain emailDomain = new EmailDomain(); emailDomain.EmailTo = user.EmailAddress; emailDomain.EmailFrom = ConfigurationManager.AppSettings["EmailFrom"]; tblEmailTemplate Template = bringlyEntities.tblEmailTemplates.Where(x => x.TemplateType == "ForgetPassword").FirstOrDefault(); if (Template == null) { return(false); } emailDomain.EmailSubject = Template.Subject; emailDomain.EmailBody = Template.Body.Replace("{ToName}", user.FullName).Replace("{username}", user.EmailAddress).Replace("{password}", password); string emailSendResult = EmailSender.sendEmail(emailDomain); if (!string.IsNullOrEmpty(emailSendResult)) { ErrorLog.LogError(emailSendResult, "send email Error"); return(false); } return(true); }
/// <summary> /// /// </summary> /// <param name="guid"></param> /// <returns></returns> public bool SendUserVerificationConfirmationEmail(Guid guid) { var user = bringlyEntities.tblUsers.Where(usr => usr.UserGuid == guid && usr.IsDeleted == false && usr.IsVerified != true).FirstOrDefault(); if (user == null || user.EmailAddress == null) { return(false); } string currentDomainName = string.Empty; Utilities.Helper.UtilityHelper.GetHostedDomainName(out currentDomainName); var confirmUrl = currentDomainName + "/home/verification/" + user.UserGuid; EmailDomain emailDomain = new EmailDomain(); emailDomain.EmailTo = user.EmailAddress; emailDomain.EmailFrom = ConfigurationManager.AppSettings["EmailFrom"]; tblEmailTemplate Template = bringlyEntities.tblEmailTemplates.Where(x => x.TemplateType == "UserVerification").FirstOrDefault(); if (Template == null) { return(false); } emailDomain.EmailSubject = Template.Subject; emailDomain.EmailBody = Template.Body.Replace("{ToName}", user.FullName).Replace("{hostUrl}", currentDomainName).Replace("{confirmUrl}", confirmUrl).Replace("{logoUrl}", currentDomainName + "/Templates/images/bringlylogoemail.png"); string emailSendResult = EmailSender.sendEmail(emailDomain); if (!string.IsNullOrEmpty(emailSendResult)) { ErrorLog.LogError(emailSendResult, "send email Error"); return(false); } else { return(true); } }
/// <summary> /// Create or update domain /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='apiVersion'> /// </param> /// <param name='account'> /// Name of CEF account /// </param> /// <param name='domain'> /// Domain name /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <EmailDomain> CreateOrUpdateDomainAsync(this IEmailOperations operations, string apiVersion, string account, EmailDomain domain, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.CreateOrUpdateDomainWithHttpMessagesAsync(apiVersion, account, domain, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Create or update domain /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='apiVersion'> /// </param> /// <param name='account'> /// Name of CEF account /// </param> /// <param name='domain'> /// Domain name /// </param> public static EmailDomain CreateOrUpdateDomain(this IEmailOperations operations, string apiVersion, string account, EmailDomain domain) { return(operations.CreateOrUpdateDomainAsync(apiVersion, account, domain).GetAwaiter().GetResult()); }
/// <remarks> /// Autogenerated by "Quick Actions and Refactoring" -> "Generate Equals and GetHashCode". /// </remarks> public override int GetHashCode() { var hashCode = -1334890813; hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(EmailDomain.ToLowerInvariant()); hashCode = hashCode * -1521134295 + EqualityComparer <string> .Default.GetHashCode(TenantId.ToLowerInvariant()); return(hashCode); }
/// <summary> /// /// </summary> /// <param name="composeEmail"></param> /// <returns></returns> public bool SendContactUsMessage(ComposeEmail composeEmail) { var admin = bringlyEntities.tblUsers .Where(usr => usr.IsActive == true && usr.IsDeleted == false && usr.UserRegistrationType == 3) .Select(usr => usr) .FirstOrDefault(); EmailDomain emailDomain = new EmailDomain(); emailDomain.EmailTo = admin.EmailAddress; emailDomain.EmailFrom = composeEmail.EmailMessage.EmailFrom; tblEmailTemplate Template = bringlyEntities.tblEmailTemplates.Where(x => x.TemplateType == "ContactUsAdmin").FirstOrDefault(); if (Template == null) { return(false); } emailDomain.EmailSubject = composeEmail.EmailMessage.Subject; emailDomain.EmailBody = Template.Body.Replace("{ToName}", admin.FullName).Replace("{message}", composeEmail.EmailMessage.Body).Replace("{EmailFrom}", composeEmail.EmailMessage.FromName); string emailSendResult = EmailSender.sendEmail(emailDomain); if (!string.IsNullOrEmpty(emailSendResult)) { ErrorLog.LogError(emailSendResult, "send email Error"); return(false); } tblEmail tblEmail = new tblEmail(); tblEmail.EmailGuid = Guid.NewGuid(); tblEmail.EmailFrom = composeEmail.EmailMessage.EmailFrom; tblEmail.Subject = composeEmail.EmailMessage.Subject; tblEmail.Body = composeEmail.EmailMessage.Body; tblEmail.Sent = (emailSendResult == "") ? true : false; tblEmail.FK_TemplateGuid = Template.TemplateGuid; tblEmail.DateCreated = DateTime.Now; // tblEmail.FK_CreatedByGuid = UserVariables.LoggedInUserGuid; bringlyEntities.tblEmails.Add(tblEmail); if (tblEmail.Sent) { tblEmailTo tblEmailTo = new tblEmailTo(); tblEmailTo.EmailToGuid = Guid.NewGuid(); tblEmailTo.FK_EmailGuid = tblEmail.EmailGuid; tblEmailTo.EmailTo = emailDomain.EmailTo; // tblEmailTo.FK_UserGuid = admin.UserGuid; bringlyEntities.tblEmailToes.Add(tblEmailTo); } bringlyEntities.SaveChanges(); emailDomain = new EmailDomain(); emailDomain.EmailTo = composeEmail.EmailMessage.EmailFrom; emailDomain.EmailFrom = admin.EmailAddress; Template = bringlyEntities.tblEmailTemplates.Where(x => x.TemplateType == "ContactUsThankYou").FirstOrDefault(); if (Template == null) { return(false); } emailDomain.EmailSubject = Template.Subject; emailDomain.EmailBody = Template.Body.Replace("{ToName}", composeEmail.EmailMessage.FromName); emailSendResult = EmailSender.sendEmail(emailDomain); if (!string.IsNullOrEmpty(emailSendResult)) { ErrorLog.LogError(emailSendResult, "send email Error"); return(false); } tblEmail = new tblEmail(); tblEmail.EmailGuid = Guid.NewGuid(); tblEmail.EmailFrom = admin.EmailAddress; tblEmail.Subject = emailDomain.EmailSubject; tblEmail.Body = emailDomain.EmailBody; tblEmail.Sent = (emailSendResult == "") ? true : false; tblEmail.FK_TemplateGuid = Template.TemplateGuid; tblEmail.DateCreated = DateTime.Now; // tblEmail.FK_CreatedByGuid = UserVariables.LoggedInUserGuid; bringlyEntities.tblEmails.Add(tblEmail); if (tblEmail.Sent) { tblEmailTo tblEmailTo = new tblEmailTo(); tblEmailTo.EmailToGuid = Guid.NewGuid(); tblEmailTo.FK_EmailGuid = tblEmail.EmailGuid; tblEmailTo.EmailTo = emailDomain.EmailTo; // tblEmailTo.FK_UserGuid = admin.UserGuid; bringlyEntities.tblEmailToes.Add(tblEmailTo); } bringlyEntities.SaveChanges(); return(true); }
/// <summary> /// /// </summary> /// <param name="ComposeEmail"></param> /// <returns></returns> public bool SendEmail(ComposeEmail ComposeEmail) { EmailDomain EmailDomain = new EmailDomain(); tblUser userfrom = bringlyEntities.tblUsers.Where(x => x.UserGuid == UserVariables.LoggedInUserGuid).ToList().FirstOrDefault(); tblEmailTemplate template = new tblEmailTemplate(); BusinessObject tblBusiness = new BusinessObject(); string image = "<img src = " + CommonDomainLogic.GetCurrentDomain + CommonDomainLogic.GetImagePath(ImageType.Default, "") + ">"; string UserImageName = userfrom.ImageName; int count = 0; if (ComposeEmail.EmailToGuid != null && ComposeEmail.EmailToGuid.Count() > 0) { foreach (string usertoguid in ComposeEmail.EmailToGuid) { tblUser userto = bringlyEntities.tblUsers.Where(x => x.UserGuid == new Guid(usertoguid)).ToList().FirstOrDefault(); EmailDomain.EmailTo = userto.EmailAddress; template = !string.IsNullOrEmpty(ComposeEmail.EmailMessage.TemplateType) ? bringlyEntities.tblEmailTemplates .Where(x => x.TemplateType == ComposeEmail.EmailMessage.TemplateType).ToList().FirstOrDefault() : new tblEmailTemplate(); if (template != null && template.TemplateGuid != null && template.TemplateGuid != Guid.Empty) { EmailDomain.EmailFrom = userfrom.EmailAddress; EmailDomain.EmailSubject = ComposeEmail.EmailMessage.Subject; if (!ComposeEmail.Isemailreplyorforward) { tblBusiness = bringlyEntities.tblBusinesses.Where(x => x.FK_CreatedByGuid == UserVariables.LoggedInUserGuid). Select(s => new BusinessObject { BusinessImage = s.BusinessImage, BusinessName = s.BusinessName }).ToList().FirstOrDefault(); EmailDomain.EmailBody = template.Body; EmailDomain.EmailBody = EmailDomain.EmailBody.Replace("{ToName}", userto.FullName).Replace("{Description}", ComposeEmail.EmailMessage.Body) .Replace("{FromName}", userfrom.FullName); } else { EmailDomain.EmailBody = ComposeEmail.EmailMessage.Body; } string emailSendResult = EmailSender.sendEmail(EmailDomain); if (!string.IsNullOrEmpty(emailSendResult)) { ErrorLog.LogError(emailSendResult, "send email Error"); } tblEmail tblEmail = new tblEmail(); tblEmail.EmailGuid = Guid.NewGuid(); tblEmail.EmailFrom = EmailDomain.EmailFrom; tblEmail.Subject = EmailDomain.EmailSubject; tblEmail.Body = EmailDomain.EmailBody; tblEmail.Sent = (emailSendResult == "") ? true : false; tblEmail.FK_TemplateGuid = template.TemplateGuid; tblEmail.DateCreated = DateTime.Now; tblEmail.FK_CreatedByGuid = UserVariables.LoggedInUserGuid; bringlyEntities.tblEmails.Add(tblEmail); if (tblEmail.Sent) { tblEmailTo tblEmailTo = new tblEmailTo(); tblEmailTo.EmailToGuid = Guid.NewGuid(); tblEmailTo.FK_EmailGuid = tblEmail.EmailGuid; tblEmailTo.EmailTo = EmailDomain.EmailTo; tblEmailTo.FK_UserGuid = new Guid(usertoguid);// new Guid(usertoguid); bringlyEntities.tblEmailToes.Add(tblEmailTo); } bringlyEntities.SaveChanges(); count = count + ((emailSendResult == "") ? 0 : 1); } } } else { count++; } if (count > 0) { return(false); } else { return(true); } }
public static string sendEmail(EmailDomain emailEntity) { SmtpClient smtp = new SmtpClient(emailEntity.Host, emailEntity.Port); MailMessage sendMail = new MailMessage(); try { //if (emailEntity == null) throw new ArgumentException("EmailDomain cannot be null", "emailEntity"); //if (emailEntity.EmailTo == null && emailEntity.ListOfMultpleEmailTo == null) throw new ArgumentException("emailTo cannot be null", "emailEntity"); if (string.IsNullOrEmpty(emailEntity.EmailTo) && emailEntity.ListOfMultpleEmailTo == null) { throw new ArgumentException("emailTo cannot be empty", "emailEntity"); } #region Email To if (!string.IsNullOrEmpty(emailEntity.EmailTo)) { sendMail.To.Add(!string.IsNullOrWhiteSpace(emailEntity.EmailToName) ? new MailAddress(emailEntity.EmailTo, emailEntity.EmailToName.Trim()) : new MailAddress(emailEntity.EmailTo)); } if (emailEntity.ListOfMultpleEmailTo != null) { foreach (var emailTo in emailEntity.ListOfMultpleEmailTo) { sendMail.To.Add(!string.IsNullOrWhiteSpace(emailTo.Value) ? new MailAddress(emailTo.Key, emailTo.Value.Trim()) : new MailAddress(emailTo.Key)); } } #endregion #region Email From sendMail.From = !string.IsNullOrWhiteSpace(emailEntity.EmailFromName) ? new MailAddress(emailEntity.EmailFrom, emailEntity.EmailFromName.Trim()) : new MailAddress(emailEntity.EmailFrom); #endregion #region Email CC if (!string.IsNullOrWhiteSpace(emailEntity.EmailCc)) { sendMail.CC.Add(!string.IsNullOrWhiteSpace(emailEntity.EmailCcName) ? new MailAddress(emailEntity.EmailCc, emailEntity.EmailCcName.Trim()) : new MailAddress(emailEntity.EmailCc)); } if (emailEntity.ListOfMultipleEmailCc != null) { foreach (var emailCc in emailEntity.ListOfMultipleEmailCc) { sendMail.CC.Add(!string.IsNullOrWhiteSpace(emailCc.Value) ? new MailAddress(emailCc.Key, emailCc.Value.Trim()) : new MailAddress(emailCc.Key)); } } #endregion #region Email BCC if (!string.IsNullOrWhiteSpace(emailEntity.EmailBcc)) { sendMail.Bcc.Add(!string.IsNullOrWhiteSpace(emailEntity.EmailBccName) ? new MailAddress(emailEntity.EmailBcc, emailEntity.EmailBccName.Trim()) : new MailAddress(emailEntity.EmailBcc)); } #endregion #region Reply if (!string.IsNullOrWhiteSpace(emailEntity.EmailReply)) { sendMail.ReplyToList.Add(!string.IsNullOrWhiteSpace(emailEntity.EmailReplyName) ? new MailAddress(emailEntity.EmailReply, emailEntity.EmailReplyName.Trim()) : new MailAddress(emailEntity.EmailReply)); } #endregion if (!string.IsNullOrEmpty(emailEntity.EmailSubject) && !string.IsNullOrWhiteSpace(emailEntity.EmailSubject)) { sendMail.Subject = emailEntity.EmailSubject.Replace('\r', ' ').Replace('\n', ' '); } sendMail.Body = emailEntity.EmailBody; sendMail.IsBodyHtml = !emailEntity.IsBodyHtml.HasValue || Convert.ToBoolean(emailEntity.IsBodyHtml); if (!emailEntity.MailPriority.HasValue) { sendMail.Priority = MailPriority.Normal; } else if (emailEntity.MailPriority == EmailMailPriority.High) { sendMail.Priority = MailPriority.High; } else if (emailEntity.MailPriority == EmailMailPriority.Low) { sendMail.Priority = MailPriority.Low; } else if (emailEntity.MailPriority == EmailMailPriority.Normal) { sendMail.Priority = MailPriority.Normal; } #region Adding Attachments if (emailEntity.Attachments != null && emailEntity.Attachments.Count > 0) { Attachment attachment; foreach (DictionaryEntry entry in emailEntity.Attachments) { string fullPath = entry.Value.ToString(); string fileName = RemoveIllegalCharactersInPath(entry.Key.ToString()); if (File.Exists(fullPath)) { attachment = new Attachment(fullPath, MediaTypeNames.Application.Octet); ContentDisposition disposition = attachment.ContentDisposition; disposition.CreationDate = File.GetCreationTime(fullPath); disposition.ModificationDate = File.GetLastWriteTime(fullPath); disposition.ReadDate = File.GetLastAccessTime(fullPath); disposition.FileName = Path.GetFileName(fileName); disposition.Size = new FileInfo(fullPath).Length; disposition.DispositionType = DispositionTypeNames.Attachment; sendMail.Attachments.Add(attachment); } } } if (emailEntity.ListOfAttachments != null && emailEntity.ListOfAttachments.Count > 0) { foreach (var item in emailEntity.ListOfAttachments) { string fullPath = item.Value; string fileName = RemoveIllegalCharactersInPath(item.Key.ToString(CultureInfo.InvariantCulture)); if (File.Exists(fullPath)) { Attachment attachment = new Attachment(fullPath, MediaTypeNames.Application.Octet); ContentDisposition disposition = attachment.ContentDisposition; disposition.CreationDate = File.GetCreationTime(fullPath); disposition.ModificationDate = File.GetLastWriteTime(fullPath); disposition.ReadDate = File.GetLastAccessTime(fullPath); disposition.FileName = Path.GetFileName(fileName); disposition.Size = new FileInfo(fullPath).Length; disposition.DispositionType = DispositionTypeNames.Attachment; sendMail.Attachments.Add(attachment); } } } #endregion #region Adding Network Credential if (emailEntity.HasNetworkCredential) { smtp.Credentials = new System.Net.NetworkCredential(emailEntity.NetworkCredentialUserName, emailEntity.NetworkCredentialPassword); smtp.EnableSsl = emailEntity.EnableSsl; } #endregion smtp.Port = emailEntity.Port; smtp.Host = emailEntity.Host; //smtp.Timeout = 1000000000; if (!emailEntity.CanSendEmail) { emailEntity.EmailNotSentError = "Email not send as property 'CanSendEmail' is set to false."; emailEntity.IsEmailSent = false; return(emailEntity.EmailNotSentError); } else { smtp.Send(sendMail); } emailEntity.IsEmailSent = true; return(""); } catch (Exception ex) { emailEntity.IsEmailSent = false; return(emailEntity.EmailNotSentError = Convert.ToString(ex.Message) + " \n " + Convert.ToString(ex.InnerException) + "\n stack trace: " + ex.StackTrace); } finally { if (smtp != null) { smtp.Dispose(); } if (sendMail != null) { sendMail.Dispose(); } } }