Salut à tous,
J'ai donc une question pour un problème qui m'énerve depuis quelques jours.
J'ai un newsletter_controller qui contient :
def send_newsletter
news = Newsletter.find(params[:id])
news.update_attribute('date',Time.now)
@liste = get_all_emails()
for mail in @liste
email = Notifier.create_mail_mailing_list_all(mail,news)
Notifier.deliver(email)
end
end
news c'est donc une newsletter que ça va chercher dans la base de données.
mail est donc un membre de la mailinglist.
J'ai donc le model Notifier qui contient l'action mail_mailing_list_all :
def mail_mailing_list_all(mail,news)
if mail[:language] == 'fr'
subject = news[:subjectfr]
subj_temp = news[:subjectfr]
body = replace_ids(news[:textfr],mail[:id])
contenu = replace_ids(news[:htmlfr],mail[:id])
message = replace_ids(news[:nohtmlfr],mail[:id])
elsif mail[:language] == 'en'
subject = news[:subjecten]
subj_temp = news[:subjecten]
body = replace_ids(news[:texten],mail[:id])
contenu = replace_ids(news[:htmlen],mail[:id])
message = replace_ids(news[:nohtmlen],mail[:id])
end
@recipients = mail[:mail]
@from = ["Newsletter UpShot <[EMAIL PROTECTED]>"]
@subject = subject
@sent_to = Time.now
@charset = "UTF-8"
@headers["X-Mailer"] = "Ruby ActionMailer"
@headers["Reply-to"] = "Newsletter UpShot <
[EMAIL PROTECTED]>"
@headers["X-Priority"] = "3"
@headers["Content-Transfer-Encoding"] = "8bit"
if mail[:mailtype] == 'text'
@content_type = "text/plain"
@body["message"] = body
@body["hash"] = mail_hash(mail[:mail])
@body["id"] = mail[:id]
@body["lang"] = mail[:language]
@body["subj"] = replace_spaces(subj_temp)
elsif mail[:mailtype] == 'html'
@content_type = "multipart/alternative"
part :content_type => "text/plain",
:body => render_message("mail_mailing_list_all_plain", :message =>
message, :id => mail[:id], :lang => mail[:language], :hash =>
mail_hash(mail[:mail]), :subj => replace_spaces(subj_temp))
part :content_type => "text/html",
:body => render_message("mail_mailing_list_all_html", :contenu =>
contenu, :id => mail[:id], :lang => mail[:language], :hash =>
mail_hash(mail[:mail]))
end
end
Cette action va donc envoyer la newsletter, français/anglais, html/text etc.
La fonction replace_spaces va remplacer les espaces du sujet de la
newsletter par des tirets pour créer un joli lien à mettre dans la
newsletter qui permettra aux personnes d'accéder à la newsletter online.
Le problème est que pour la première newsletter envoyée à la première
personne, tout va bien, mais ensuite il me mets des tirets dans les sujets
des newsletter à envoyer.
Mais donc je me retrouve avec un sujet "à tirets" même dans les
news[:subjectfr] et news[:subjecten] alors qu'ils n'ont normalement jamais
été modifiés et qu'ils sont récupérés directement depuis la bdd et passés en
paramètre dans la boucle du controller newsletter.
Quelqu'un qui aura eut le courage de me lire jusqu'à la fin saurait
m'expliquer ce problème ?
Merci d'avance,
Romain
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---