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.
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)
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.
Zum Glück hat Ruby ein Juwel für das Versenden von Google Mail, also werde ich dieses verwenden.
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.
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
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
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