As shown below, I can send debug output from Net::SMTP to stderr, how
to I send this to a string instead?
smtp = Net::SMTP.new(x[:address], x[:port])
smtp.set_debug_output $stderr
smtp.start(x[:domain], x[:user_name], x[:password],
x[:authentication]) do |smtp|
smtp.sendmail(mail.encoded, mail.from, mail.destinations)
end
On Jan 29, 7:31 pm, “[email protected]” [email protected] wrote:
As shown below, I can send debug output from Net::SMTP to stderr, how
to I send this to a string instead?
smtp = Net::SMTP.new(x[:address], x[:port])
smtp.set_debug_output $stderr
smtp.start(x[:domain], x[:user_name], x[:password],
x[:authentication]) do |smtp|
smtp.sendmail(mail.encoded, mail.from, mail.destinations)
end
fyi, this StringIO technique does not work…
smtp = Net::SMTP.new(x[:address], x[:port])
s = StringIO.new
smtp.set_debug_output s
smtp.start(x[:domain], x[:user_name], x[:password],
x[:authentication]) do |smtp|
smtp.sendmail(mail.encoded, mail.from, mail.destinations)
end
s.rewind
pp s.readlines
On Wed, 2008-01-30 at 10:49 +0900, [email protected] wrote:
pp s.readlines
Works for me:
$ irb
irb(main):001:0> require ‘net/smtp’
=> true
irb(main):002:0> require ‘stringio’
=> true
irb(main):003:0> a = StringIO.new
=> #StringIO:0xb7cfa7e4
irb(main):004:0> s = Net::SMTP.new(‘zonkalicious.org’, 587)
=> #<Net::SMTP zonkalicious.org:587 started=false>
irb(main):005:0> s.set_debug_output a
=> #StringIO:0xb7cfa7e4
irb(main):006:0> s.start(‘nowhere.com’, ‘nouser’, ‘nopass’)
Errno::ECONNREFUSED: Connection refused - connect(2)
[ … error trace snipped for brevity … ]
irb(main):007:0> a.string
=> “opening connection to zonkalicious.org…\n”
irb(main):008:0>
Ignoring the error for a connection refused because I’m using bogus
login data, it does capture debug output to the StringIO object.
HTH,
Felix
On Jan 29, 8:08 pm, fw [email protected] wrote:
end
s.rewind
=> #StringIO:0xb7cfa7e4
Ignoring the error for a connection refused because I’m using bogus
login data, it does capture debug output to the StringIO object.
HTH,
Felix
Sigh, I had a class that overrides do_start some of Net::SMTP so that
it works with TLS for google, the class had this great line in it…
@socket.debug_output = STDERR #@debug_output
no wonder everything I set was being ignored!
thanks for the help though folks!
On Wed, 2008-01-30 at 10:34 +0900, [email protected] wrote:
As shown below, I can send debug output from Net::SMTP to stderr, how
to I send this to a string instead?
smtp = Net::SMTP.new(x[:address], x[:port])
smtp.set_debug_output $stderr
smtp.start(x[:domain], x[:user_name], x[:password],
x[:authentication]) do |smtp|
smtp.sendmail(mail.encoded, mail.from, mail.destinations)
end
require ‘stringio’
a = StringIO.new
smtp.set_debug_output a
HTH,
Felix