Project
smtp_tls
Provides SMTP STARTTLS support for Ruby 1.8.6 (built-in for 1.8.7+). Simply
require 'smtp_tls' and use the Net::SMTP#enable_starttls method to talk to
servers that use STARTTLS.
require 'net/smtp'
begin
require 'smtp_tls'
rescue LoadError
end
smtp = Net::SMTP.new address, port
smtp.enable_starttls
smtp.start Socket.gethostname, user, password, authentication do |server|
server.send_message message, from, to
end
You can also test your SMTP connection settings using mail_smtp_tls:
$ date | ruby -Ilib bin/mail_smtp_tls smtp.example.com submission \
"your username" "your password" plain \
from@example.com to@example.com
Using SMTP_TLS 1.0.3
-> "220 smtp.example.com ESMTP XXX\r\n"
<- "EHLO you.example.com\r\n"
-> "250-smtp.example.com at your service, [192.0.2.1]\r\n"
-> "250-SIZE 35651584\r\n"
-> "250-8BITMIME\r\n"
-> "250-STARTTLS\r\n"
-> "250-ENHANCEDSTATUSCODES\r\n"
-> "250 PIPELINING\r\n"
<- "STARTTLS\r\n"
-> "220 2.0.0 Ready to start TLS\r\n"
TLS connection started
<- "EHLO you.example.com\r\n"
-> "250-smtp.example.com at your service, [192.0.2.1]\r\n"
-> "250-SIZE 35651584\r\n"
-> "250-8BITMIME\r\n"
-> "250-AUTH LOGIN PLAIN\r\n"
-> "250-ENHANCEDSTATUSCODES\r\n"
-> "250 PIPELINING\r\n"
<- "AUTH PLAIN BASE64_STUFF_HERE\r\n"
-> "235 2.7.0 Accepted\r\n"
<- "MAIL FROM:<from@example.com>\r\n"
-> "250 2.1.0 OK XXX\r\n"
<- "RCPT TO:<to@example.com>\r\n"
-> "250 2.1.5 OK XXX\r\n"
<- "DATA\r\n"
-> "354 Go ahead XXX\r\n"
writing message from String
wrote 91 bytes
-> "250 2.0.0 OK 1247028988 XXX\r\n"
<- "QUIT\r\n"
-> "221 2.0.0 closing connection XXX\r\n"
This will connect to smtp.example.com using the submission port (port 587)
with a username and password of "your username" and "your password" and
authenticate using plain-text auth (the submission port always uses SSL) then
send the current date to to@example.com from from@example.com.
Debug output from the connection will be printed on stderr.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
Development
Dependencies
Development
>= 2.3.2