Senden Sie E-Mails von Google Mail mit Ruby

Einführung

Als Übungsaufgabe für das Schreiben eines Programms während der Lernsitzung, an der ich teilnehme, gibt es das Thema, eine E-Mail mit Ruby zu senden, und die Details meiner Arbeit werden unten beschrieben.

Übrigens ist es ein von Google Mail gesendetes Programm, das ich normalerweise benutze.

Da es sich um ein zeitlich begrenztes Problem handelte, habe ich es eilig ausgeführt, aber es hat mir geholfen, mehr Referenzen und Bibliotheken zu haben, als ich erwartet hatte.

Implementierungsumgebung, was Sie brauchen

Implementierungsverfahren

Holen Sie sich das Google App-Passwort

Authentifizieren Sie sich zur Authentifizierung beim Senden einer E-Mail über die App nicht mit dem Google-Kontokennwort, sondern mit dem in den Google-Kontoeinstellungen angegebenen App-Kennwort. (Empfohlene Sicherheitsmethode, anstatt das Passwort so zu verwenden, wie es ist)

Account settings

Wählen Sie im obigen Bildschirm "Sicherheit" -> "App-Passwort", wählen Sie App: Mail, Gerät (in meinem Fall Mac) und klicken Sie dann auf die Schaltfläche "Generieren", um das App-Passwort anzuzeigen.

Installieren Sie Ruby-Google Mail Gem

Zum Glück hat Ruby ein Juwel für das Versenden von Google Mail, also werde ich dieses verwenden.

dcparker/ruby-gmail

gem install ruby-gmail

ruby-gmail gem scheint interessant zu sein, da es neben dem einfachen Senden von E-Mails verschiedene Funktionen wie das Lesen und Bearbeiten empfangener E-Mails bietet.

Umgebungsvariablen festlegen (Google Mail-Adresse, App-Passwort)

Aus Sicherheitsgründen sollten die zuvor erhaltene Google Mail-Adresse und das App-Passwort in der Umgebungsvariablen festgelegt werden, anstatt fest im Programm geschrieben zu sein, und vom Programm abgerufen werden.

export GMAIL_ID="Die Google Mail-Adresse, die Sie senden möchten"
export GMAIL_PASS="Passwort für die Google Mail-App"

Reflektiert die eingestellten Umgebungsvariablen.

source ~/.bash_profile

Erstellen eines E-Mail-Sendeprogramms

Dieses Mal können Sie eine beliebige Zieladresse, einen Betreff und einen Textkörper in den Befehl eingeben.

require "gmail"

USERNAME = ENV[ "GMAIL_ID" ]
PASSWORD = ENV[ "GMAIL_PASS"]

gmail = Gmail.new(USERNAME, PASSWORD)

puts "Bitte geben Sie die Zieladresse ein"
address_to = gets.chomp
puts "Bitte geben Sie ein Thema ein"
title = gets.chomp
puts "Bitte geben Sie den Text ein"
text = gets

message =
  gmail.generate_message do
    to address_to
    subject title
    html_part do
      content_type "text/html; charset=UTF-8"
      body "<p>" + text + "</p>" 
    end
  end

gmail.deliver(message)
gmail.logout

Referenzartikel

Ich habe mich für den größten Teil des Programms darauf bezogen. Ich bin sehr dankbar.

[[Ruby] E-Mail mit Google Mail-Konto senden - Programmierhinweis von TakBoy](https://csharpmagazine.hatenablog.com/entry/2019/12/13/%E3%80%90Ruby%E3%80%91Gmail%E3%82% A2% E3% 82% AB% E3% 82% A6% E3% 83% B3% E3% 83% 88% E3% 81% A7% E3% 83% A1% E3% 83% BC% E3% 83% AB% E9% 80% 81% E4% BF% A1)

Recommended Posts

Senden Sie E-Mails von Google Mail mit Ruby
Ruby: Mail mit Starttls senden
Senden Sie eine E-Mail mit einem PDF-Anhang über JavaMail
[Spring Boot] Senden Sie eine E-Mail
Mail mit Spring Boot verschicken
Ich möchte manuell eine Autorisierungs-E-Mail mit Devise senden
[Java] Senden Sie eine E-Mail mit Amazon SES
Senden Sie E-Mails mit JavaMail unter AWS
Ich möchte eine E-Mail in Java senden.
Senden Sie eine E-Mail, wenn ein Protokoll auf ERROR-Ebene mit SMTP Appender of Logback auftritt
So geben Sie einen Standard aus einem Array mit for Each aus
Erste Schritte mit Ruby
Von Java zu Ruby !!
Evolve Eve mit Ruby
Ich habe einen Interpreter (Compiler?) Mit ungefähr 80 Zeilen in Ruby erstellt.
Ruby on Rails Einstellung der automatischen E-Mail-Sendefunktion (über Google Mail)
[Version 2020] So senden Sie eine E-Mail mit Android Studio Javamail
Was passiert mit Instanzvariablen beim Kopieren einer Instanz mit Ruby?
Ruby / rexml: Drehen Sie jedes mit einem Element mit dem gleichen Namen