Problema ao enviar email

11 views
Skip to first unread message

Julianog12

unread,
May 7, 2010, 1:29:17 PM5/7/10
to rghost-pt
Pessoal, estou enviando um arquivo PDF atachado por email!!

Quando vou abrir ele não tem nada dentro, sendo que na tela ele me
mostra o pdf gerado.
Segue o ActionMailler

def fabrica(options = {})
email = "<a href='mailto:garci...@gmail.com'>garcia.g12@gmail</
a>"
recipients options[:para] || ""
from options[:from] || email
subject options[:assunto] || ""
reply_to options[:responder] || email
body :corpo => options[:corpo] || email
puts options[:doc]
puts options[:arquivo]

attachment "application/pdf" do |a|
a.body = options[:doc].render_stream(:pdf)
a.filename = options[:arquivo]
end



def report_pedido
RGhost::Config::GS[:path]= "c:\\gs\\gs8.64\\bin\\gswin32c.exe"

@pedido = Pedido.find(:first,
:conditions => ["pedidos.id = ?", params[:id]],
:joins => [:parceiro])

@filename = "pedido#{@pedido.id}.pdf"
@path_report = 'public/reports/'


doc=RGhost::Document.new :paper => [30,15],
:landscaped => true,
:margin_top => 2,
:margin_bottom => 2
doc.define_tags do
tag :my_bold15, :name => 'Times-New-Roman', :size =>
10, :row_padding => 1
tag :my_bold10, :name => 'Times-New-Roman', :size =>
8, :row_padding => 1
end

doc.show 'Nome Fantasia', :height => 1
doc.moveto :x => 4, :y => :current_row
doc.show @pedido.parceiro.nome_fantasia
doc.show 'Pedido Nº ', :align => :page_right
doc.show @pedido.id
doc.next_row

doc.show 'Cliente', :height => 1
doc.moveto :x => 4, :y => :current_row
doc.show @pedido.parceiro.cnpj
doc.show ' '
doc.show @pedido.parceiro.razao_social
doc.next_row

doc.show 'Rua'
doc.moveto :x => 4, :y => :current_row
doc.show @pedido.parceiro.endereco
doc.moveto :x => 10, :y => :current_row
doc.show 'Nº '
doc.show @pedido.parceiro.numero

doc.moveto :x => 12, :y => :current_row
doc.show 'Bairro '
doc.show @pedido.parceiro.bairro
doc.next_row

doc.show 'CEP'
doc.moveto :x => 4, :y => :current_row
doc.show @pedido.parceiro.cep
doc.moveto :x => 7, :y => :current_row
doc.show 'Cidade '
doc.show @pedido.parceiro.cidade.cidade
doc.moveto :x => 11, :y => :current_row
doc.show ' Estado '
doc.show @pedido.parceiro.cidade.uf
doc.moveto :x => 15, :y => :current_row
doc.show 'Fone '
doc.show @pedido.parceiro.fone_comercial unless
@pedido.parceiro.fone_comercial.nil?
doc.next_row

doc.show 'Dias Vencto'
doc.moveto :x => 4, :y => :current_row
doc.show @pedido.dia1.to_s+' '+...@pedido.dia2.to_s+'
'+...@pedido.dia3.to_s+' '+...@pedido.dia4.to_s+' '+...@pedido.dia5.to_s+'
'+...@pedido.dia6.to_s+' '+...@pedido.dia7.to_s+' '+...@pedido.dia8.to_s
doc.next_row
doc.next_row
doc.define_tags do
tag :meus_itens, :name => 'Hershey-Plain-Duplex-Bold', :size
=> 5, :row_padding => 1
end
doc.grid :data => @pedido.item_pedido, :style
=> :border_lines, :tag => :meus_itens do |g|
g.column :id, :title => "Item", :align => :center, :width => 1
g.column lambda{|v| (v.flag_brinde == true) ? "Sim" :
"Não"}, :title => "Brinde? ", :width => 2
g.column 'produto.referencia_produto', :title => " Produto
", :align => :center, :width => 2
g.column 'produto.descricao', :title => "Descricao", :width => 2
g.column 'gtam.descricao', :title => "Gtam", :width => 2
g.column :cor_id, :title => "Cor", :align => :center, :width =>
1
g.column 'cor.descricao', :title => "Descricao Cor", :width => 2
g.column :qtde1, :align => :right, :width => 1
g.column :qtde2, :align => :right, :width => 1
g.column :qtde3, :align => :right, :width => 1
g.column :qtde4, :align => :right, :width => 1
g.column :qtde5, :align => :right, :width => 1
g.column :qtde6, :align => :right, :width => 1
g.column :qtde7, :align => :right, :width => 1
g.column :qtde8, :align => :right, :width => 1
g.column :preco, :title => "Preço", :align => :right, :width =>
1
g.column :preco_liquido, :title => "Preço Liquido", :align
=> :right, :width => 2
g.column :total_item, :title => "Total Item", :align
=> :right, :width => 2
end

#doc.render :pdf, :filename => @path_report + @filename


send_email_pedido(doc, @filename)

#render_report_pdf(path + filename + ".pdf")
#send_data doc.render_stream(:pdf), :filename => @path_report
#render :template => "/reports/report_pedido", :layout => false
doc.done
end


private
def send_email_pedido(doc, nome_arquivo)
corpo = <<-CODE
<b>Cadastro de Pedido<br /></b>
<b>Pedido Nr.</b>#{@pedido.id}<br />
<b>CNPJ</b>#{@pedido.parceiro.cnpj}<br />
<b>Razao Social</b>#{@pedido.parceiro.razao_social}<br />
<b>Data do cadastro: </b>#{@pedido.created_at}<br />
CODE
EnvioEmail.deliver_fabrica(:corpo => corpo, :assunto =>
"Solicitação de Cadastro de pedido",
:para => 'julia...@hotmail.com', :doc
=> doc, :arquivo => nome_arquivo)

EnvioEmail.deliver_cliente(:corpo => corpo, :assunto =>
"Solicitação de Cadastro de pedido",
:para => "julia...@hotmail.com")
end


Ele envia tudo certo o anexo, mas na hora de abrir da um erro!!!

--
Você está recebendo esta mensagem porque se inscreveu no grupo "rghost-pt" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para rgho...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para rghost-pt+...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/rghost-pt?hl=pt-BR.

Shairon Toledo

unread,
May 7, 2010, 1:32:01 PM5/7/10
to rgho...@googlegroups.com
Qual erro?
--
[ ]'s
Shairon Toledo
http://www.google.com/profiles/shairon.toledo

Julianog12

unread,
May 7, 2010, 1:42:29 PM5/7/10
to rghost-pt
There was an error opening this document. The file is damaged and
could not be repaired!!

On 7 maio, 14:32, Shairon Toledo <shairon.tol...@gmail.com> wrote:
> Qual erro?
>
>
>
> On Fri, May 7, 2010 at 1:29 PM, Julianog12 <garcia....@gmail.com> wrote:
> > Pessoal, estou enviando um arquivo PDF atachado por email!!
>
> > Quando vou abrir ele não tem nada dentro, sendo que na tela ele me
> > mostra o pdf gerado.
> > Segue o ActionMailler
>
> >  def fabrica(options = {})
> >    email = "<a href='mailto:garcia....@gmail.com'>garcia.g12@gmail</
> > a>"
> >    recipients options[:para] || ""
> >    from options[:from] || email
> >    subject options[:assunto]  || ""
> >    reply_to options[:responder] || email
> >    body :corpo => options[:corpo] || email
> >    puts options[:doc]
> >    puts options[:arquivo]
>
> >    attachment "application/pdf" do |a|
> >               a.body =  options[:doc].render_stream(:pdf)
> >               a.filename = options[:arquivo]
> >  end
>
> >  def report_pedido
> >    RGhost::Config::GS[:path]= "c:\\gs\\gs8.64\\bin\\gswin32c.exe"
>
> >    @pedido = Pedido.find(:first,
> >      :conditions => ["pedidos.id = ?", params[:id]],
> >      :joins => [:parceiro])
>
> >    @filename = "pedid...@pedido.id}.pdf"
> >    doc.show @pedido.dia1.to_s+' '...@pedido.dia2.to_s+'
> > '...@pedido.dia3.to_s+' '...@pedido.dia4.to_s+' '...@pedido.dia5.to_s+'
> > '...@pedido.dia6.to_s+' '...@pedido.dia7.to_s+' '...@pedido.dia8.to_s
> >    <b>Pedido Nr...</b>@pedido.id}<br />
> >    <b>CNP...</b>@pedido.parceiro.cnpj}<br />
> >    <b>Razao Socia...</b>@pedido.parceiro.razao_social}<br />
> >    <b>Data do cadastro: </b>#...@pedido.created_at}<br />
> >                CODE
> >    EnvioEmail.deliver_fabrica(:corpo => corpo, :assunto =>
> > "Solicitação de Cadastro de pedido",
> >                               :para => 'juliano...@hotmail.com', :doc
> > => doc, :arquivo => nome_arquivo)
>
> >    EnvioEmail.deliver_cliente(:corpo => corpo, :assunto =>
> > "Solicitação de Cadastro de pedido",
> >                               :para => "juliano...@hotmail.com")
> > end
>
> > Ele envia tudo certo o anexo, mas na hora de abrir da um erro!!!
>
> > --
> > Você está recebendo esta mensagem porque se inscreveu no grupo "rghost-pt"
> > dos Grupos do Google.
> > Para postar neste grupo, envie um e-mail para rgho...@googlegroups.com.
> > Para cancelar a inscrição nesse grupo, envie um e-mail para
> > rghost-pt+...@googlegroups.com<rghost-pt%2Bunsu...@googlegroups.com>
> > .
> > Para obter mais opções, visite esse grupo em
> >http://groups.google.com/group/rghost-pt?hl=pt-BR.
>
> --
> [ ]'s
> Shairon Toledohttp://www.google.com/profiles/shairon.toledo
>
> --
> Você está recebendo esta mensagem porque se inscreveu no grupo "rghost-pt" dos Grupos do Google.
> Para postar neste grupo, envie um e-mail para rgho...@googlegroups.com.
> Para cancelar a inscrição nesse grupo, envie um e-mail para rghost-pt+...@googlegroups.com.
> Para obter mais opções, visite esse grupo emhttp://groups.google.com/group/rghost-pt?hl=pt-BR.

Shairon Toledo

unread,
May 7, 2010, 1:44:47 PM5/7/10
to rgho...@googlegroups.com
Envie o arquivo pra uma conta do gmail, tem uma opção pra ver a mensagem me raw mode, depois anexa o arquivo aqui pra nós.
--
[ ]'s
Shairon Toledo

Julianog12

unread,
May 7, 2010, 1:51:01 PM5/7/10
to rghost-pt

Julianog12

unread,
May 7, 2010, 2:10:05 PM5/7/10
to rghost-pt
Shairom, enviei para o teu email: shairon...@gmail.com

Julianog12

unread,
May 7, 2010, 2:10:22 PM5/7/10
to rghost-pt
Pois não consegui ver naquele formato

On 7 maio, 14:51, Julianog12 <garcia....@gmail.com> wrote:

Shairon Toledo

unread,
May 7, 2010, 2:33:13 PM5/7/10
to rgho...@googlegroups.com
Tenta fazer o render_stream fora do método "fabrica", tipo

pdf = doc.render_stream(:pdf)

passa o 'pdf' para o fabrica e depois


  attachment "application/pdf" do |a|
              a.body =  options[:doc]
              a.filename = options[:arquivo]




Julianog12

unread,
May 7, 2010, 2:47:57 PM5/7/10
to rghost-pt
Shairon, da exatamente o mesmo erro!!

On 7 maio, 15:33, Shairon Toledo <shairon.tol...@gmail.com> wrote:
> Tenta fazer o render_stream fora do método "fabrica", tipo
>
> pdf = doc.render_stream(:pdf)
>
> passa o 'pdf' para o fabrica e depois
>
>   attachment "application/pdf" do |a|
>               a.body =  options[:doc]
>               a.filename = options[:arquivo]
>
> > > > > <rghost-pt%2Bunsu...@googlegroups.com<rghost-pt%252Buns...@googlegroups.com>
> > <rghost-pt%252Buns...@googlegroups.com<rghost-pt%25252Bun...@googlegroups.com>
>
> > > > > > > .
> > > > > > > Para obter mais opções, visite esse grupo em
> > > > > > >http://groups.google.com/group/rghost-pt?hl=pt-BR.
>
> > > > > > --
> > > > > > [ ]'s
> > > > > > Shairon Toledohttp://www.google.com/profiles/shairon.toledo
>
> > > > > > --
> > > > > > Você está recebendo esta mensagem porque se inscreveu no grupo
> > > > > "rghost-pt" dos Grupos do Google.
> > > > > > Para postar neste grupo, envie um e-mail para
> > rgho...@googlegroups.com
> > > > > .
> > > > > > Para cancelar a inscrição nesse grupo, envie um e-mail para
> > > > > rghost-pt+...@googlegroups.com<rghost-pt%2Bunsu...@googlegroups.com>
> > <rghost-pt%2Bunsu...@googlegroups.com<rghost-pt%252Buns...@googlegroups.com>
>
> > > > > .
> > > > > > Para obter mais opções, visite esse grupo emhttp://
> > > > > groups.google.com/group/rghost-pt?hl=pt-BR.
>
> > > > > --
> > > > > Você está recebendo esta mensagem porque se inscreveu no grupo
> > "rghost-pt"
> > > > > dos Grupos do Google.
> > > > > Para postar neste grupo, envie um e-mail para
>
> ...
>
> mais »

Julianog12

unread,
May 7, 2010, 3:12:33 PM5/7/10
to rghost-pt
um detalhe Shairon, se tiro parte do código funciona!!!

def report_pedido
RGhost::Config::GS[:path]= "c:\\gs\\gs8.64\\bin\\gswin32c.exe"

@pedido = Pedido.find(:first,
:conditions => ["pedidos.id = ?", params[:id]],
:joins => [:parceiro])

@filename = "pedido#{@pedido.id}.pdf"
@path_report = 'public/reports/'

doc=RGhost::Document.new :paper => [30,15],
:landscaped => true,
:margin_top => 2,
:margin_bottom => 2
doc.define_tags do
tag :my_bold15, :name => 'Times-New-Roman', :size =>
10, :row_padding => 1
tag :my_bold10, :name => 'Times-New-Roman', :size =>
8, :row_padding => 1
end

doc.show 'Nome Fantasia', :height => 1
doc.moveto :x => 4, :y => :current_row
doc.show @pedido.parceiro.nome_fantasia
doc.show 'Pedido Nº ', :align => :page_right
doc.show @pedido.id
doc.next_row

doc.show 'Cliente', :height => 1
doc.moveto :x => 4, :y => :current_row
doc.show @pedido.parceiro.cnpj
doc.show ' '
doc.show @pedido.parceiro.razao_social
doc.next_row



só até esta parte dae vai

Julianog12

unread,
May 7, 2010, 3:43:17 PM5/7/10
to rghost-pt
Shairon, alguma posição daquilo que te falei no tópico acima?

On 7 maio, 16:12, Julianog12 <garcia....@gmail.com> wrote:
> um detalhe Shairon, se tiro parte do código funciona!!!
>
>  def report_pedido
>     RGhost::Config::GS[:path]= "c:\\gs\\gs8.64\\bin\\gswin32c.exe"
>
>     @pedido = Pedido.find(:first,
>       :conditions => ["pedidos.id = ?", params[:id]],
>       :joins => [:parceiro])
>
Reply all
Reply to author
Forward
0 new messages