public MailMessage WelcomeMail(NewMemberMessage message) { Require.NotNull(message, "message"); // FIXME: C'est un peu pourri ! À refaire ! Utiliser CultureInfo.DefaultThreadCurrentUICulture ? String template; if (CultureInfo.CurrentUICulture.TwoLetterISOLanguageName == "fr") { template = Resources.WelcomeMailBody; } else { template = Resources.WelcomeMailBody_English; } var tpl = new Template(template); tpl.Add("Message", message); tpl.Add("SiteUrl", _siteMap.Home().ToString()); var mail = new MailMessage { Body = tpl.Render(CultureInfo.CurrentCulture), IsBodyHtml = false, Subject = Strings.Welcome_Subject }; mail.To.Add(message.EmailAddress); return(mail); }
/// <summary> /// Envoi des notifications lors de l'inscription d'un nouveau membre. /// </summary> /// <param name="message">Modèle du message à envoyer.</param> public void Publish(NewMemberMessage message) { Require.NotNull(message, "message"); SmtpClient smtpClient = null; try { smtpClient = new SmtpClient(); // On envoie d'abord le mail destiné au nouveau membre (le plus important). if (message.Recipients.Contains(MessageRecipients.Member)) { using (var mail = _mailMerge.WelcomeMail(message)) { smtpClient.Send(mail); } } if (message.Recipients.Contains(MessageRecipients.Admin)) { using (var notification = _mailMerge.NewMemberNotification(message)) { smtpClient.Send(notification); } } } catch (SmtpException ex) { // NB: On ne "rethrow" pas les exceptions SMTP. // Si une erreur intervient lors du message au nouveau membre, il n'aura // pas de mail contenant son mot de passe mais pourra le récupérer sur le site // via le lien "Mot de passe oublié". Log.Error(ex, "A SMTP error occured while sending the new member messages."); } finally { if (smtpClient != null) { smtpClient.Dispose(); } } }
public MailMessage NewMemberNotification(NewMemberMessage message) { Require.NotNull(message, "message"); var tpl = new Template(Resources.NewMemberNotificationBody); tpl.Add("Message", message); var mail = new MailMessage { Body = tpl.Render(FrenchCultureInfo_), IsBodyHtml = false, Subject = String.Format( FrenchCultureInfo_, "Nouvelle inscription sur le site : {0}.", message.EmailAddress.DisplayName) }; mail.To.Add(Constants.ContactAddress); return(mail); }