Ruby on Rails Wednesday, January 21, 2015

On Tuesday, January 20, 2015 at 10:07:01 AM UTC-5, Scott Ribe wrote:
How in the !@#$% can this function:

def sendMsg(msg, today, cancel)
 
email = <<MSG
Date: #{Time.now}
From: f...@bar.com
Subject: Pediatric Cardiology Apt#{cancel ? ' Cancellation' : ''}
Mime-Version: 1.0
Content-Type: text/html; charset="utf-8";
X-Priority: #{today ? '1' : '3'}

#{msg.encode('US-ASCII', {undef: :replace, invalid: :replace})}
MSG

  Net::SMTP.start("foo-...@bar.org", 25) do |smtp|
    smtp.send_mail(email, MAILUSER, ["some...@bar.org"])
  end

end

intermittently produce this error:

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/net/protocol.rb:325:in `slice!': invalid byte sequence in US-ASCII (ArgumentError)
[snip stack trace]

It's curious that you are setting the message encoding to UTF-8 and then encoding the message in US-ASCII, but it's been a long time since I've used Net::SMTP directly.  Glancing through the stack trace, it appears it may be puking when trying to encode the rcpt address, not necessarily the message itself, but to find out more would require a bit of digging in the Net::SMTP gem code.  

This is on OS X, and it only happens when run automatically from a launch daemon. Logging into the same account and running it manually always works. So it's some version or configuration issue. But I find that using rvm on OS X is frustrating to say the least... 

I can't imagine *not* using RVM anymore, and the primary unix I've worked with for some years is Mac OS X.   A bit of googling has always helped me fix or work around any issues I might have had.   Having the same Ruby environment in production as development is very helpful.

Also, I would guess the email is being sent from a rake task?  Any particular reason to use a launch daemon instead of cron?

Jim Crate

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/36da4297-a656-4ba9-a0b5-246c682042f2%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment