public dtoMailMessagePreview(Int32 idUserLanguage, lm.Comol.Core.DomainModel.Language dLanguage, dtoMailMessage message, MessageSettings settings, SmtpServiceConfig smtpConfig) { IdUserLanguage = idUserLanguage; IdUserLanguage = (dLanguage == null) ? 0 : dLanguage.Id; Message = message; Settings = settings; SmtpConfig = smtpConfig; IsEmpty = false; }
private MailMessage CreateMessage(Int32 idUserLanguage, Language dLanguage, dtoMailMessage dtoMessage, Boolean replaceCRLF = false) { MailMessage message = new System.Net.Mail.MailMessage(); //message.BodyEncoding = System.Text.Encoding.Unicode; //message.SubjectEncoding = System.Text.Encoding.Unicode; message.Sender = Sender(dtoMessage); message.From = From(dtoMessage); if (dtoMessage.ReplyTo != null) { message.ReplyToList.Add(dtoMessage.ReplyTo); } if (!SMTPconfig.RelayAllowed && !message.ReplyToList.Any()) { message.ReplyToList.Add(message.From); } if (MailSettings.NotifyToSender && message.ReplyToList.Any()) { try { if (!string.IsNullOrEmpty(dtoMessage.ReplyTo.DisplayName)) { message.Headers.Add("Disposition-Notification-To", dtoMessage.ReplyTo.DisplayName + " <" + dtoMessage.ReplyTo.Address + ">"); } else { message.Headers.Add("Disposition-Notification-To", "<" + dtoMessage.ReplyTo.Address + ">"); } } catch (Exception ex) { } } message.Subject = Subject(idUserLanguage, dLanguage, dtoMessage); message.IsBodyHtml = MailSettings.IsBodyHtml; if (dtoMessage.Attachments != null && dtoMessage.Attachments.Count > 0) { dtoMessage.Attachments.ForEach(a => message.Attachments.Add(a)); } message.Body = (message.IsBodyHtml && replaceCRLF ? dtoMessage.Body.Replace("\r\n", "<br>") : dtoMessage.Body); switch (MailSettings.Signature) { case Signature.FromConfigurationSettings: message.Body += ((message.IsBodyHtml) ? "<br/><br/>" : "\r\n\r\n\r\n") + SMTPconfig.GetSignature(idUserLanguage, dLanguage.Id); break; case Signature.FromNoReplySettings: message.Body += ((message.IsBodyHtml) ? "<br/><br/>" : "\r\n\r\n\r\n") + SMTPconfig.GetNoReplySignature(idUserLanguage, dLanguage.Id); break; } return(message); }
public Boolean SendMail(String senderName, String senderMail, String subject, String body, String recipients, MessageSettings settings, SmtpServiceConfig smtpConfig) { Boolean result = false; try { //List<System.Net.Mail.MailAddress> rItems = new List<System.Net.Mail.MailAddress>(); //if (!String.IsNullOrEmpty(recipients)){ // rItems.AddRange(recipients.Split(separator.ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList().Select(m => new System.Net.Mail.MailAddress(m)).ToList()); //} //string separator, Language dLanguage = CurrentManager.GetDefaultLanguage(); lm.Comol.Core.Mail.MailService mailService = new lm.Comol.Core.Mail.MailService(smtpConfig, settings); lm.Comol.Core.Mail.dtoMailMessage message = new lm.Comol.Core.Mail.dtoMailMessage(subject, body); message.FromUser = new System.Net.Mail.MailAddress(senderMail, senderMail); mailService.SendMail(UserContext.Language.Id, dLanguage, message, recipients, MailCommons.Domain.RecipientType.BCC); result = true; } catch (Exception ex) { } return(result); }
private MailException InternalSendMail(Int32 idUserLanguage, Language dLanguage, dtoMailMessage dtoMessage, Boolean replaceCRLF = false) { try{ MailMessage message = CreateMessage(idUserLanguage, dLanguage, dtoMessage, replaceCRLF); SmtpClient smtpClient = CreateSmtpClient(); List <dtoRecipients> recipients = new List <dtoRecipients>(); dtoMessage.To.ForEach(t => recipients.Add(new dtoRecipients() { Mail = t, Type = RecipientType.To })); dtoMessage.CC.ForEach(t => recipients.Add(new dtoRecipients() { Mail = t, Type = RecipientType.CC })); dtoMessage.BCC.ForEach(t => recipients.Add(new dtoRecipients() { Mail = t, Type = RecipientType.BCC })); Int32 maxRecipients = SMTPconfig.MaxRecipients; int Total = recipients.Count; int PageNumber = 0; if (maxRecipients > 0) { if (recipients.Count / maxRecipients < 1) { PageNumber = 0; } else { PageNumber = (recipients.Count % maxRecipients == 0 ? recipients.Count / maxRecipients - 1 : (recipients.Count / maxRecipients)); } } for (int i = 0; i <= PageNumber; i++) { List <dtoRecipients> paged = null; if (SMTPconfig.MaxRecipients > 0) { paged = recipients.Skip(maxRecipients * i).Take(maxRecipients).ToList(); } else { paged = recipients; } if (paged != null && paged.Count > 0) { message.To.Clear(); message.CC.Clear(); message.Bcc.Clear(); paged.Where(p => p.Type == RecipientType.To).ToList().ForEach(p => message.To.Add(p.Mail)); paged.Where(p => p.Type == RecipientType.CC).ToList().ForEach(p => message.CC.Add(p.Mail)); paged.Where(p => p.Type == RecipientType.BCC).ToList().ForEach(p => message.Bcc.Add(p.Mail)); smtpClient.Send(message); } } if (MailSettings.CopyToSender) { message.To.Clear(); message.CC.Clear(); message.Bcc.Clear(); message.Subject = SubjectForCopy(idUserLanguage, dLanguage, dtoMessage); message.To.Add(new MailAddress(dtoMessage.FromUser.DisplayName, dtoMessage.FromUser.Address)); smtpClient.Send(message); } return(MailException.MailSent); } catch (ArgumentOutOfRangeException outOfRangeException) { return(MailException.NoDestinationAddress); } catch (SmtpException smtpException) { return(MailException.SMTPunavailable); } catch (Exception ex) { return(MailException.UnknownError); } }
public MailException SendMail(Int32 idUserLanguage, Language dLanguage, dtoMailMessage dtoMessage, String ToAdresses, RecipientType type, Boolean replaceCRLF = false) { return((dtoMessage.AddAddresses(ToAdresses, type) == MailException.None) ? InternalSendMail(idUserLanguage, dLanguage, dtoMessage, replaceCRLF) : MailException.InvalidAddress); }
public MailException SendMail(Int32 idUserLanguage, Language dLanguage, dtoMailMessage dtoMessage, Boolean replaceCRLF = false) { return(InternalSendMail(idUserLanguage, dLanguage, dtoMessage, replaceCRLF)); }
private MailAddress Sender(dtoMailMessage dtoMessage) { return((SMTPconfig.RelayAllowed) ? ((MailSettings.SenderType == SenderUserType.System || dtoMessage.FromUser == null) ? SMTPconfig.GetSystemSender() : dtoMessage.FromUser) : SMTPconfig.GetSystemSender()); }
private MailAddress From(dtoMailMessage dtoMessage) { return((MailSettings.SenderType == MailCommons.Domain.SenderUserType.System) ? SMTPconfig.GetSystemSender() : dtoMessage.FromUser); //return (SMTPconfig.RelayAllowed) ? ((MailSettings.Sender == SenderType.System) ? SMTPconfig.SystemSender : dtoMessage.FromUser) : ((SMTPconfig.SystemSender.Address ==dtoMessage.FromUser.Address) ? SMTPconfig.SystemSender : new MailAddress( SMTPconfig.SystemSender.Address, dtoMessage.FromUser.Address)) ; }
private String SubjectForCopy(Int32 idUserLanguage, Language dLanguage, dtoMailMessage dtoMessage) { return((MailSettings.PrefixType == MailCommons.Domain.SubjectPrefixType.None) ? SMTPconfig.GetSubjectForSenderCopy(idUserLanguage, dLanguage.Id) + dtoMessage.UserSubject : SMTPconfig.GetSubjectPrefix(idUserLanguage, dLanguage.Id) + SMTPconfig.GetSubjectForSenderCopy(idUserLanguage, dLanguage.Id) + dtoMessage.UserSubject); }