Sending email with attachments in Ruby with the Po

2019-04-14 00:59发布

问题:

I am writing a script that is going to be sending out emails to a list of people and with this email there is going to be an attachment.

I keep running into this issue:
/usr/local/lib/ruby/1.9.1/net/smtp.rb:942:in 'check_response': 552 sorry, that message size exceeds my databytes limit (#5.3.4) (Net::SMTPFatalError)

The attached file is only 110kb

Code:

    Pony.mail(
        :to => to,
        :from => 'Me <me@me.com>',
        :subject => html_entity_decoder.decode(options[:subject]),
        :html_body => "#{options[:body]}".html_safe,
        :attachments => {File.basename("#{attachment}") => File.read("#{attachment}")},
        :headers => { "Content-Type" => "multipart/mixed", "Content-Transfer-Encoding" => "base64", "Content-Disposition" => "attachment" },
        :via => :smtp, 
        :via_options => {
          :address        => ADDRESS,
          :port           => '25',
          :enable_starttls_auto => true,
          :user_name      => USERNAME,
          :password       => PWD,
          :authentication => :plain,
          :domain         => DOMAIN
          }
      )

Any idea on what could be wrong?

回答1:

This is telling you that the mailbox you are sending it to, has run out of space.

The error is an SMTP error : 552 Requested mail action aborted: exceeded storage allocation

outlined in the rfc http://www.ietf.org/rfc/rfc2821.txt.

So either the mail box is full or you are sending something that will not fit in it



回答2:

Please use this

:attachments => {File.basename("#{attachment}") => File.read("#{attachment}")},
  :headers => { "Content-Type" => "multipart/mixed", "Content-Transfer-Encoding" => "base64", "Content-Disposition" => "attachment" }

Probably this will solve your problem.



标签: ruby email pony