6

Ho problemi nell'usare qualsiasi forma della pipeline di asset all'interno del mailer, sia del Mailer stesso che della vista.Come posso utilizzare le risorse all'interno di Mailer?

Il seguente produce e svuota il tag immagine src.

<%= image_tag "emails/header-general.png" %> 

Il tag immagine vuota appare così:

img alt = "Intestazione generale"

la seguente forma di allegare un file attraverso il modello ed il suo utilizzo nella vista attribuisce un vuoto Immagine.

attachments.inline['header.jpg'] = 'emails/header-general.png' 
... 
<%= image_tag attachments['header.png'] %> 

Ho controllato il percorso e ho anche provato con percorsi multipli e così via, ma senza fortuna. Per favore aiuto. Sarebbe utile qualsiasi forma di includere un'immagine nell'e-mail.

Ecco l'indirizzo di produzione.

Xenium::Application.configure do 
# Settings specified here will take precedence over those in config/application.rb 

# Code is not reloaded between requests 
config.cache_classes = true 

# Full error reports are disabled and caching is turned on 
config.consider_all_requests_local  = false 
config.action_controller.perform_caching = true 

# Disable Rails's static asset server (Apache or nginx will already do this) 
config.serve_static_assets = false 

# Compress JavaScripts and CSS 
config.assets.compress = true 

# Choose the compressors to use 
config.assets.js_compressor = :yui 
config.assets.css_compressor = :yui 

# Don't fallback to assets pipeline if a precompiled asset is missed 
config.assets.compile = true 

# Generate digests for assets URLs 
config.assets.digest = true 

# Defaults to Rails.root.join("public/assets") 
# config.assets.manifest = YOUR_PATH 

# Specifies the header that your server uses for sending files 
# config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache 
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx 

# Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. 
# config.force_ssl = true 

# See everything in the log (default is :info) 
config.log_level = :fatal 

# Use a different logger for distributed setups 
# config.logger = SyslogLogger.new 

# Use a different cache store in production 
config.cache_store = :mem_cache_store 

# Enable serving of images, stylesheets, and JavaScripts from an asset server 
#config.action_controller.asset_host = "http://asset.xenium.bg" 

# Precompile additional assets (application.js, application.css, and all non-JS/CSS are already added) 
# config.assets.precompile += %w(search.js) 

# Disable delivery errors, bad email addresses will be ignored 
config.action_mailer.raise_delivery_errors = true 
#config.action_mailer.perform_deliveries = true 
config.action_mailer.delivery_method = :smtp 
config.action_mailer.smtp_settings = { 
:address    => "localhost", 
:port     => 25, 
:domain    => 'xenium.bg', 
#:user_name   => '<username>', 
#:password    => '<password>', 
#:authentication  => 'plain', 
:enable_starttls_auto => false 
} 

# Enable threaded mode 
# config.threadsafe! 

# Enable locale fallbacks for I18n (makes lookups for any locale fall back to 
# the I18n.default_locale when a translation can not be found) 
config.i18n.fallbacks = true 

# Send deprecation notices to registered listeners 
config.active_support.deprecation = :notify 
end 

Grazie!

+0

Alcuni suggerimenti generali sul debug di questo, che potrebbero anche darti alcune informazioni aggiuntive per inserire questa domanda. # 1. Se si visualizza la stessa immagine in una vista semplice, viene visualizzata? In tal caso, qual è l'URL generato per l'immagine? # 2. Nella versione mailer, l'attributo src è in realtà vuoto? Per favore includi il tag img che è stato generato nella tua domanda. # 3. Fai molta attenzione al caching del browser mentre provi diverse configurazioni per risolvere il problema. Il tuo browser potrebbe continuare a visualizzare un'immagine "vuota" anche dopo aver risolto il problema. # 4. Includi il file di configurazione dell'ambiente come parte di questa domanda. – cailinanne

+0

Ciao grazie per il commento. Ho modificato la mia domanda per includere più cose. Non c'è stranezza di cache o qualcos'altro. Sembra non funzionare – YavorIvanov

risposta

4

Secondo la sezione 2.3.3 Making Inline Attachments, per creare un allegato in linea che si farà come segue

attachments.inline['image.jpg'] = File.read('/path/to/image.jpg') 

Quindi nel tuo caso, dovrebbe essere

attachments.inline['header.jpg'] = File.read("#{Rails.root}/app/assets/images/emails/header-general.png" 
1

set config.action_controller.asset_host e config .action_mailer.asset_host e questo funziona bene.

config.action_mailer.asset_host = URL from where pick image 
<%= image_tag image_path('logo.png') %>