Domanda

Qualcuno ha tutte le qualità (e up-to-date) le informazioni riguardanti l'invio di posta tramite Gmail utilizzando Net :: SMTP di Ruby? Ho visto diversi esempi - la maggior parte risalenti dal 2007 al metà del 2008 e nessuno di loro lavoro per me. Ho bisogno di più esempi attuali che utilizzano la più recente versione 1.8.7. Mi piacerebbe anche apprezzare se la documentazione non riguarda solo semplici esempi che nessuno usa mai veramente.

Al momento sto ricevendo un errore:

 SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol

Io non sono terribilmente familiarità con SSL per quanto riguarda il protocollo SMTP, quindi questo è tutto perso su di me. Purtroppo la documentazione Net :: SMTP copre solo le basi e non fornisce un elenco completo dei diversi contesti potenziale OpenSSL :: SSL sia così, non posso provare diverse fasi.

In ogni caso, se qualcuno ha qualche informazioni di qualità su come ottenere questo al lavoro con Gmail sarebbe più apprezzato.

Best.

È stato utile?

Soluzione

In realtà ho appena ricevuto questo lavoro. Ha scritto un breve script per testarlo.

mi è stato sempre un errore di diverso da quello che eri (che richiede STARTTLS), ho anche scoperto che ho dovuto utilizzare la porta 587 invece di 465.

Ho trovato il trucco per farlo funzionare in un plugin Rails ho trovato. (Agilewebdevelopment.com/plugins/net_smtp_tls_support)

se 'eval' questo file (che aggiunge il supporto TLS per la Rete di serie :: libreria SMTP):

  

http: // felicità-è- slavery.net/wp-content/rails-plugins/smtp_add_tls_support/lib/smtp_add_tls_support.rb

quindi eseguire 'Net :: SMTP.enable_tls ()'

tutto sembra funzionare bene.

Ecco il mio codice:

require 'rubygems'
require 'net/smtp'

eval File.read("smtp_tls.rb")
Net::SMTP.enable_tls() 
FROM_EMAIL = "REMOVED"
PASSWORD = "REMOVED"
TO_EMAIL = "REMOVED"

msgstr = <<END_OF_MESSAGE
From: Your Name <#{FROM_EMAIL}>
To: my phone <#{TO_EMAIL}>
Subject: text message
Date: Sat, 23 Jun 2001 16:26:43 +0900
Message-Id: <unique.message.id.string@example.com>

This is a test message.
END_OF_MESSAGE

Net::SMTP.start('smtp.gmail.com', 587, 'gmail.com',
                      FROM_EMAIL, PASSWORD, :plain) do |smtp|
  smtp.send_message msgstr, FROM_EMAIL, TO_EMAIL

end

ovviamente, ho scaricato il file di cui sopra nella stessa directory e la chiamò 'smtp_tls.rb'

Spero che questo aiuti!

Altri suggerimenti

In realtà le opere al di sotto Gmail senza un plugin o un gioiello, almeno con Ruby 1.9.1p376, ma buona fortuna trovare la documentazione che ti dirà così:

    require 'net/smtp'

    msg = "Subject: Hi There!\n\nThis works, and this part is in the body."
    smtp = Net::SMTP.new 'smtp.gmail.com', 587
    smtp.enable_starttls
    smtp.start(YourDomain, YourAccountName, YourPassword, :login) do
      smtp.send_message(msg, FromAddress, ToAddress)
    end

YourAccountName appare come 'you@domain.com' & YourDomain probabilmente può essere qualsiasi cosa che ti piace, ma io uso il nome effettivo del dominio.

Si sta collegando alla porta 465 smtp.gmail.com Io parto dal presupposto? .

openssl s_client -connect smtp.gmail.com:587

COLLEGATI (00000003) 8298: errore: 140770FC: routine SSL: SSL23_GET_SERVER_HELLO: sconosciuto protocollo: s23_clnt.c: 601:

L'errore sembra molto simile al tuo. Il seguente comando funziona:

 openssl s_client  -starttls smtp -connect smtp.gmail.com:587

Quindi penso che quello che sta succedendo è che non si ha il supporto STARTTLS abilitato. Non sono sicuro come farlo in Ruby acquistare quello che ho scoperto è che il plugin action_mailer_tls permette questo patch Net :: SMTP. Come di Ruby 1.8.7, Net :: SMTP ha questo supporto built-in.

Se si utilizza Rubino <1.8.7 qui è la patch.

È inoltre necessario disporre di due caratteri di nuova riga tra l'oggetto e il corpo del messaggio. In caso contrario, solo verrà trasmesso il soggetto, e il corpo del messaggio verrà lasciato vuoto.

msg = "Subject: My Subject Goes Here\n\nMy message goes here"

https://web.archive.org/web/20110113211408/http://blog.segment7.net/articles/2009/07/08/smtp_tls-1-0-3 potrebbe aiutare

e qui ci sono alcuni più caratteri per soddisfare le esigenze di SO ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top