Net/smtp question

Ive tried several examples from numerous books trying to send mail with
net smtp and i never really get the emails.

require 'net/smtp'

message = <<MESSAGE_END

···

From: Nobody <nobody@power.net>
To: Someone <someone@hotmail.com>
Subject: Test SMTP

i pray that itll work
MESSAGE_END

Net::SMTP.start('mx1.hotmail.com') do |smtp|
  smtp.send_message message, 'nobody@power.net', 'someone@hotmail.com'
end

#####
This was one example, i receive no errors indicating a problem but when
checking my email IE: someone@hotmail.com i dont have it in any
folders, not inbox or junkmail.

Another version that i modified to fit my own needs was this ----

require 'net/smtp'

puts "Sender: "
sender = gets.chomp
puts "Recipient: "
rcpt = gets.chomp
puts "Message: "
msg = gets.chomp

smtp = Net::SMTP.new('mx1.hotmail.com')

smtp.start()

smtp.ready(sender, rcpt) do |mail|

mail.write msg

end

#########
once again no errors

any ideas why i might not be getting the emails?
--
Posted via http://www.ruby-forum.com/.

Michael Linfield wrote:

Ive tried several examples from numerous books trying to send mail with
net smtp and i never really get the emails.

require 'net/smtp'

message = <<MESSAGE_END
From: Nobody <nobody@power.net>
To: Someone <someone@hotmail.com>
Subject: Test SMTP

i pray that itll work
MESSAGE_END

Net::SMTP.start('mx1.hotmail.com') do |smtp|
  smtp.send_message message, 'nobody@power.net', 'someone@hotmail.com'
end

#####
This was one example, i receive no errors indicating a problem but when
checking my email IE: someone@hotmail.com i dont have it in any
folders, not inbox or junkmail.

Another version that i modified to fit my own needs was this ----

require 'net/smtp'

puts "Sender: "
sender = gets.chomp
puts "Recipient: "
rcpt = gets.chomp
puts "Message: "
msg = gets.chomp

smtp = Net::SMTP.new('mx1.hotmail.com')

smtp.start()

smtp.ready(sender, rcpt) do |mail|

mail.write msg

end

#########
once again no errors

any ideas why i might not be getting the emails?
  
I know I'm not directly answering your question, but there's a sample on my blog:
http://notepad.onghu.com/ruby

I think it would be good for you to try to send it to some other email address, perhaps, you are missing some fields which make your mail look like spam and is being dropped by something along the way?

Cheers,
Mohit.
9/14/2007 | 12:49 PM.

# smtp = Net::SMTP.new('mx1.hotmail.com')
# smtp.start()

smtp.set_debug_output $stderr # insert this and email back the result

# smtp.ready(sender, rcpt) do |mail|
# mail.write msg

···

From: Michael Linfield [mailto:globyy3000@hotmail.com]

Michael Linfield wrote:

Ive tried several examples from numerous books trying to send mail with
net smtp and i never really get the emails.

require 'net/smtp'

message = <<MESSAGE_END
From: Nobody <nobody@power.net>
To: Someone <someone@hotmail.com>
Subject: Test SMTP

i pray that itll work
MESSAGE_END

Net::SMTP.start('mx1.hotmail.com') do |smtp|
  smtp.send_message message, 'nobody@power.net', 'someone@hotmail.com'
end

#####
This was one example, i receive no errors indicating a problem but when
checking my email IE: someone@hotmail.com i dont have it in any
folders, not inbox or junkmail.

Another version that i modified to fit my own needs was this ----

require 'net/smtp'

puts "Sender: "
sender = gets.chomp
puts "Recipient: "
rcpt = gets.chomp
puts "Message: "
msg = gets.chomp

smtp = Net::SMTP.new('mx1.hotmail.com')

smtp.start()

smtp.ready(sender, rcpt) do |mail|

mail.write msg

end

#########
once again no errors

any ideas why i might not be getting the emails?

Does hotmail even allow SMTP usage? I noticed you were trying to connect to the server mx1.hotmail.com. Try this with a GMail account or other account, it should work. The following is part of a script that worked for me, though I haven't tested it in 6 months. Ruby 1.8 doesn't support TLS, so I had to require a file "smtp_tls.rb" that you can find on the web. You won't need it if your server doesn't require TLS.

#!/usr/bin/env ruby
require 'net/smtp'
require 'smtp_tls'

myMessage = <<END_OF_MESSAGE

···

From: XXXXXXX <your_address@gmail.com>
To: XXXXXX <someone@example.com>
Subject: XXXXX XXXXXX

This e-mail is a test.
END_OF_MESSAGE

Net::SMTP.start('smtp.gmail.com', 587, 'localhost.localdomain',
                 username, password, :login) do |smtp|
     smtp.send_message(myMessage, 'your_address@gmail.com',
                       ['someone@example.com']);

end

__END__

Good luck,
Dan

Michael Linfield wrote:

Ive tried several examples from numerous books trying to send mail with
net smtp and i never really get the emails.

require 'net/smtp'

message = <<MESSAGE_END
From: Nobody <nobody@power.net>
To: Someone <someone@hotmail.com>
Subject: Test SMTP

i pray that itll work
MESSAGE_END

Net::SMTP.start('mx1.hotmail.com') do |smtp|
  smtp.send_message message, 'nobody@power.net', 'someone@hotmail.com'
end

This example works perfectly good for me.

I would chack if server 'mx1.hotmail.com' allows message relaying.

by
TheR

···

--
Posted via http://www.ruby-forum.com/\.

Quoth Mohit Sindhwani on Thursday 13 September 2007 09:49:49 pm:

Michael Linfield wrote:
> Ive tried several examples from numerous books trying to send mail with
> net smtp and i never really get the emails.
>
> require 'net/smtp'
>
> message = <<MESSAGE_END
> From: Nobody <nobody@power.net>
> To: Someone <someone@hotmail.com>
> Subject: Test SMTP
>
> i pray that itll work
> MESSAGE_END
>
> Net::SMTP.start('mx1.hotmail.com') do |smtp|
> smtp.send_message message, 'nobody@power.net', 'someone@hotmail.com'
> end
>
> #####
> This was one example, i receive no errors indicating a problem but when
> checking my email IE: someone@hotmail.com i dont have it in any
> folders, not inbox or junkmail.
>
> Another version that i modified to fit my own needs was this ----
>
> require 'net/smtp'
>
> puts "Sender: "
> sender = gets.chomp
> puts "Recipient: "
> rcpt = gets.chomp
> puts "Message: "
> msg = gets.chomp
>
> smtp = Net::SMTP.new('mx1.hotmail.com')
>
> smtp.start()
>
> smtp.ready(sender, rcpt) do |mail|
>
> mail.write msg
>
> end
>
> #########
> once again no errors
>
> any ideas why i might not be getting the emails?
>

I know I'm not directly answering your question, but there's a sample on
my blog:
http://notepad.onghu.com/ruby

I think it would be good for you to try to send it to some other email
address, perhaps, you are missing some fields which make your mail look
like spam and is being dropped by something along the way?

Cheers,
Mohit.
9/14/2007 | 12:49 PM.

A lot of ISPs block people from having mail servers on their local machines,
as this is something zombie networks tend to do rather than joe idiot user.

···

--
Konrad Meyer <konrad@tylerc.org> http://konrad.sobertillnoon.com/

Agreed.... meaning, in your example you are assuming that mx1.hotmail.com is allowing un-authenticated SMTP. Majority of mail server require that you perform SMTP Auth before any outgoing transmission can occur.

Confidentiality Notice: This e-mail message (including any attached or
embedded documents) is intended for the exclusive and confidential use of the
individual or entity to which this message is addressed, and unless otherwise
expressly indicated, is confidential and privileged information of Rackspace
Managed Hosting. Any dissemination, distribution or copying of the enclosed
material is prohibited. If you receive this transmission in error, please
notify us immediately by e-mail at abuse@rackspace.com, and delete the
original message. Your cooperation is appreciated.

···

On Sep 17, 2007, at 12:48 AM, Damjan Rems wrote:

Michael Linfield wrote:

Ive tried several examples from numerous books trying to send mail with
net smtp and i never really get the emails.

require 'net/smtp'

message = <<MESSAGE_END
From: Nobody <nobody@power.net>
To: Someone <someone@hotmail.com>
Subject: Test SMTP

i pray that itll work
MESSAGE_END

Net::SMTP.start('mx1.hotmail.com') do |smtp|
  smtp.send_message message, 'nobody@power.net', 'someone@hotmail.com'
end

This example works perfectly good for me.

I would chack if server 'mx1.hotmail.com' allows message relaying.