Además, si lee los documentos para Mail
, encontrará una buena solución alternativa que funcionará. En lugar de uso:
Mail.deliver do
to @recipient # throws error as this is undefined
from '[email protected]'
subject 'testing sendmail'
body 'testing sendmail'
end
puede utilizar el método de correo new()
, pasando en los parámetros, y pasar por alto el bloque:
Mail.new(
to: @recipient,
from: '[email protected]',
subject: 'testing sendmail',
body: 'testing sendmail'
).deliver!
o las definiciones de elementos de hash alternativos:
Mail.new(
:to => @recipient,
:from => '[email protected]',
:subject => 'testing sendmail',
:body => 'testing sendmail'
).deliver!
En palanca , o irb, usted vería:
pry(main)> Mail.new(
pry(main)* to: '[email protected]',
pry(main)* from: '[email protected]' << `hostname`.strip,
pry(main)* subject: 'test mail gem',
pry(main)* body: 'this is only a test'
pry(main)*).deliver!
=> #<Mail::Message:59273220, Multipart: false, Headers: <Date: Fri, 28 Oct 2011 09:01:14 -0700>, <From: [email protected]>, <To: [email protected]>, <Message-ID: <[email protected]>>, <Subject: test mail gem>, <Mime-Version: 1.0>, <Content-Type: text/plain>, <Content-Transfer-Encoding: 7bit>>
El método new
tiene varias variaciones que puede usar. Esto también es de los documentos, y podría funcionar mejor:
Como nota al margen, también puede crear un nuevo correo electrónico mediante la creación de un objeto Mail :: Message directamente y luego pasar valores a través de cadena, símbolo o directo llamadas de método. Ver Mail :: Mensaje para más información.
mail = Mail.new
mail.to = '[email protected]'
mail[:from] = '[email protected]'
mail['subject'] = 'This is an email'
mail.body = 'This is the body'
seguido por mail.deliver!
.
También tenga en cuenta, en el ejemplo anterior, que hay múltiples formas de acceder a los diversos encabezados en el sobre del mensaje. Es una gema flexible que parece estar bien pensada y sigue muy bien el estilo Ruby.
¿Está seguro de que su problema es con la instancia var, y no con 'params [: email]'? ¿Has intentado sacarlo? También una variable local debería ser suficiente aquí, ya que el bloque es un cierre de todos modos. –