J'ai besoin d'aide pour les modèles de courrier électronique. J'ai un modèle html avec trois images incorporées dedans. J'utilise le plugin d'authentification reposful et j'ai essayé de personnaliser le mailer par défaut. Le modèle fonctionne très bien en tant que page Web autonome, mais pour une raison quelconque, il ne fonctionne pas correctement avec les images. Je peux soit obtenir les images à attacher mais pas rendre en ligne, ou ne pas attacher du tout.Modèles de courrier électronique dans Ruby on Rails
Quoi qu'il en soit le logiciel de messagerie se présente comme suit:
class UserMailer < ActionMailer::Base
def signup_notification(user)
setup_email(user)
@subject << 'Please activate your thredUP account'
@body[:url] = "#{APP_CONFIG[:site_url]}/activate/#{user.activation_code}"
end
def activation(user)
setup_email(user)
@subject << 'Your account has been activated - Welcome to thredUP!'
@url = APP_CONFIG[:site_url]
@user = user
content_type "text/html"
attachment :content_type => "image/gif", :body => File.read("#{Rails.root}/public/images/email/bottom-border.gif")
attachment :content_type => "image/gif", :body => File.read("#{Rails.root}/public/images/email/top-border.gif")
attachment :content_type => "image/png", :body => File.read("#{Rails.root}/public/images/email/footer.png")
attachment :content_type => "image/png", :body => File.read("#{Rails.root}/public/images/email/logo-lid.png")
render :layout => 'standard'
end
protected
def setup_email(user)
@recipients = "#{user.email}"
@from = APP_CONFIG[:admin_email]
@subject = "[#{APP_CONFIG[:site_name]}] "
@sent_on = Time.now
@body[:user] = user
end
end
J'ai aussi construit le modèle comme suit:
<html>
<body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0" offset="0" bgcolor='#EFEFEF' >
<table width="100%" cellpadding="10" cellspacing="40" border="0" class="backgroundTable" bgcolor='#EFEFEF' >
<tr>
<td valign="top" align="center">
<table width="600" cellpadding="0" cellspacing="0">
<tr>
<td style="padding-bottom:15px;"><img src="cid:logo-lid.png"> </td>
</tr>
</table>
<table width="600" cellpadding="0" cellspacing="0">
<tr>
<td><img src="cid:top-border.gif"></td>
</tr>
<tr bgcolor="#FFFFFF">
<td style="padding:20px;">
<%= yield %>
</td>
</tr>
<tr>
<td><img src="cid:bottom-border.gif"></td>
</tr>
<tr>
<td style="text-align:center; padding-top:15px;">
<img src="cid:footer.png">
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
ok Je vais essayer ça. Je pense que je me souviens de mes jours Windows, d'avoir à approuver le téléchargement des images côté serveur. Je suppose que cela a changé? – chrishomer
Je ne peux pas parler pour tous les clients, mais c'est comme cela que la plupart des services de newsletter semblent le gérer, et cela fonctionne. –
De nombreux clients bloquent les images hébergées par défaut [pour de bonnes raisons], mais la plupart autorisent les images en ligne (attachées). – sandstrom