ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Emails senden mit Ruby
BeitragVerfasst: 06 Mär 2017, 22:29 
Offline
Lehrling
Benutzeravatar

Registriert: 21 Sep 2016, 19:20
Beiträge: 57
Wie kann ich von Ruby aus eine Email an mein Gmail Konto oder anderen mail services senden?
Habe schon SMTP probiert aber da klappt es nicht mit diesem Code:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
require 'net/smtp'

Net::SMTP.start('mail.google.com',
25,
'localhost',
'meineemail@gmail.com', 'meinpasswort') #das hier ist nur zensiert!

message = <<MESSAGE_END
From: Private Person <meineemail@gmail.com>
To: A Test User <meineemail@gmail.com>
Subject: SMTP e-mail test

This is a test e-mail message.

MESSAGE_END


Net::SMTP.start('mail.google.com') do |smtp|
smtp.send_message message, 'meineemail@gmail.com',
'meineemail@gmail.com'
end


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 06 Mär 2017, 23:12 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Ich habe den Code etwas verändert und die Mail kam an. Hier musst Du natürlich Deine Daten einsetzen:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/ruby
require 'net/smtp'

message = <<MESSAGE_END
From: sender@gmail.de
To: empfaenger@gmail.de
Subject: SMTP e-mail test

This is a test e-mail message.

MESSAGE_END


Net::SMTP.start('smtp.server.de',
424242, # Portnummer, siehe Mailereinstellungen
'localhost', # bei mir das, was in der /etc/hosts steht
'sender@gmail.de',
'das dazu passende passwort') do |smtp|
smtp.send_message message, 'sender@gmail.de',
'empfaenger@gmail.de'
end

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 10:24 
Offline
Interpreter
Benutzeravatar

Registriert: 18 Sep 2008, 22:32
Beiträge: 1821
Wohnort: NRW → UN
Im Kontext rund um E-Mails darf ein Hinweis auf den exzellenten Mail-Gem nicht fehlen: https://rubygems.org/gems/mail und https://github.com/mikel/mail

Valete,
Quintus

_________________
Habe den Mut, dich deines eigenen Verstandes zu bedienen! — Immanuel Kant

Ich bin freischaffender Softwareentwickler und freue mich über jedes neue Projekt. Kontaktinformation auf meiner Website.

Mein Blog | GitHub-Profil | Auf Twitter: @qquintilianus | PGP/GPG-Schlüssel: B1FE 958E D5E8 468E AA20 8F4B F1D8 799F BCC8 BC4F


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 10:29 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Das sieht ja richtig gut aus.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 17:24 
Offline
Lehrling
Benutzeravatar

Registriert: 21 Sep 2016, 19:20
Beiträge: 57
Ich erhalte bei diesem Code nur

C:/Ruby23-x64/lib/ruby/2.3.0/net/smtp.rb:542:in `initialize': execution expired (Net::OpenTimeout)
from C:/Ruby23-x64/lib/ruby/2.3.0/net/smtp.rb:542:in `open'
from C:/Ruby23-x64/lib/ruby/2.3.0/net/smtp.rb:542:in `tcp_socket'
from C:/Ruby23-x64/lib/ruby/2.3.0/net/smtp.rb:552:in `block in do_start'
from C:/Ruby23-x64/lib/ruby/2.3.0/timeout.rb:101:in `timeout'
from C:/Ruby23-x64/lib/ruby/2.3.0/net/smtp.rb:551:in `do_start'
from C:/Ruby23-x64/lib/ruby/2.3.0/net/smtp.rb:521:in `start'
from C:/Ruby23-x64/lib/ruby/2.3.0/net/smtp.rb:458:in `start'
from C:/Users/LuckyChicken/Desktop/email.rb:12:in `<main>'



der code ist


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/ruby
require 'net/smtp'

message = <<MESSAGE_END
From: meineemail@gmail.com
To: meineemail@gmail.com
Subject: SMTP e-mail test

This is a test e-mail message.

MESSAGE_END


Net::SMTP.start('smtp.gmail.com',
25, #das habe ich zu 25 geaendert weil es das normale fuer SMTP ist. (die zahl davor hat aber auch nicht funktioniert)
'localhost', # keine ahnung wo bei mir /etc/hosts ist. Hab windows
'meineemail@gmail.com',
'meinpasswort') do |smtp|
smtp.send_message message, 'meineemail@gmail.com', #die email und passwort ist nur zensiert
'meineemail@gmail.com'
end


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 17:50 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
smtp.gmail.com:25 macht kein SMTP, nutze bitte smtp.gmail.com:465 (SSL) oder smtp.gmail.com:587 (TLS), bzw wenn du eine statische IP hast und G-Suite Nutzer bist auch smtp-relay.gmail.com:25.

Nähere Infos:
https://support.google.com/a/answer/176600?hl=de

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 19:41 
Offline
Lehrling
Benutzeravatar

Registriert: 21 Sep 2016, 19:20
Beiträge: 57
Ok scheint zu gehen aber jetzt kriege ich immer egal was ich tue diesen error:

C:/Users/LuckyChicken/Desktop/email.rb: end of file reached (EOFError)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 19:46 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
LuckyChicken hat geschrieben:
Ok scheint zu gehen aber jetzt kriege ich immer egal was ich tue diesen error:

C:/Users/LuckyChicken/Desktop/email.rb: end of file reached (EOFError)

Kannst Du mal den kompletten Error samt Context posten?

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 19:50 
Offline
Lehrling
Benutzeravatar

Registriert: 21 Sep 2016, 19:20
Beiträge: 57
das ist alles! mehr stand da nicht!
Code:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/ruby
require 'net/smtp'

message = <<MESSAGE_END
From: email@gmail.com
To: email@gmail.com
Subject: SMTP e-mail test

This is a test e-mail message.

MESSAGE_END


Net::SMTP.start('smtp.gmail.com',
465, # Portnummer, siehe Mailereinstellungen
'localhost', # bei mir das, was in der /etc/hosts steht
'email@gmail.com',
'passwort') do |smtp|
smtp.send_message message, 'email@gmail.com',
'email@gmail.com'
end


Dateianhänge:
dasistalles.PNG
dasistalles.PNG [ 3.9 KiB | 906-mal betrachtet ]
Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 21:20 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Ich habe Deinen Code in eine Datei kopiert und ihn dann so, wie er ist, laufen lassen. Nach einer gewissen Zeit erhalte ich den gleichen Fehler, wie Du.

Ich habe dann meinen Original-Code mit meinen Daten genommen und Zeile für Zeile durch Deine Zeilen ersetzt, wobei ich natürlich ein paarmal Sache anpassen musste. Es lief in allen Fällen, wobei ich an manchen Stellen auch Deine Füller-Email-Adressen stehen lassen konnte. Wenn ich den bei Dir eingetragenen SMTP-Server benutzen wollte gab es natürlich einen Fehler wegen fehlerhafter Authentication. Auch die Angabe von 'localhost' war möglich.

Es muss irgendwie im Zusammenhang mit dem 'smtp.gmail.com'-Server stehen, wobei ich bei meinem Anbieter (1&1) statt der 465 die 587 zu stehen habe. probier die doch mal aus.

Ich finde ansonsten keinen grundsätzlichen Fehler.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 22:37 
Offline
Lehrling
Benutzeravatar

Registriert: 21 Sep 2016, 19:20
Beiträge: 57
Die 587 hatte ich schon mal probiert da habe ich allerdings einen authentiaction fehler bekommen weil ich keine ahnung hab wie ich mich authentifizieren kann

C:/Ruby23-x64/lib/ruby/2.3.0/net/smtp.rb:977:in `check_auth_response': 530 5.7.0 Must issue a STARTTLS command first. q30sm192086lfa.20 - gsmtp (Net::SMTPAuthenticationError)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 07 Mär 2017, 23:30 
Offline
Interpreter

Registriert: 15 Mär 2005, 19:26
Beiträge: 6142
Wohnort: Karlsruhe
Dann schau doch mal in Deinem Mailprogramm nach den Einstellungen. Bei mir im Firefox steht alles so, wie ich es brauchte. Ansonsten weiss ich auch nicht mehr weiter.

_________________
WoNáDo.set_state!(:retired)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 08 Mär 2017, 16:11 
Offline
Lehrling
Benutzeravatar

Registriert: 21 Sep 2016, 19:20
Beiträge: 57
Na toll dann geht es jetzt also nicht? Ziemlich schade dass es mit Ruby nicht geht :(

Ich nutze Chrome


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 08 Mär 2017, 16:17 
Offline
Metaprogrammierer

Registriert: 20 Nov 2011, 21:51
Beiträge: 693
Was haben denn jetzt Firefox und Chrome mit den Einstellungen zu tun?

587 benötigt TLS und soll laut einem Beitrag auf StackOverflow funktionieren wie folgt. Allerdings wird da wohl Ruby 1.9+ benötigt, das sollte wohl inzwischen aber auch überall verfügbar sein?



1
2
3
4
5
6
7
8
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

_________________
Ubuntu Gnome 14.04 LTS
rvm mit App-spezifischer Ruby-Version (meist 2.2.x) und -Gemset

Github ProfilBitbucket Profil


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Emails senden mit Ruby
BeitragVerfasst: 08 Mär 2017, 16:38 
Offline
Lehrling
Benutzeravatar

Registriert: 21 Sep 2016, 19:20
Beiträge: 57
NobbZ hat geschrieben:
Was haben denn jetzt Firefox und Chrome mit den Einstellungen zu tun?

587 benötigt TLS und soll laut einem Beitrag auf StackOverflow funktionieren wie folgt. Allerdings wird da wohl Ruby 1.9+ benötigt, das sollte wohl inzwischen aber auch überall verfügbar sein?



1
2
3
4
5
6
7
8
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


Das bringt nichts dann zeigt er mir auch wieder
C:/Users/LuckyChicken/Desktop/email.rb: end of file reached (EOFError)
an und versendet gar nichts :(


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 22 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: