En tant que tâche pratique de rédaction d'un programme lors de la session d'étude à laquelle je participe, il existe un thème d'envoi d'un e-mail avec ruby, et le contenu de la mise en œuvre est décrit ci-dessous.
Au fait, c'est un programme envoyé depuis gmail que j'utilise habituellement.
C'était un problème alors qu'il y avait une limite de temps, alors je l'ai fait à la hâte, mais j'ai été aidé en ayant plus de références et de bibliothèques que ce à quoi je m'attendais.
Pour l'authentification lors de l'envoi d'un e-mail à partir de l'application, au lieu d'utiliser le mot de passe du compte Google tel quel, authentifiez-vous à l'aide du mot de passe d'application émis dans les paramètres du compte Google. (Méthode recommandée pour la sécurité plutôt que d'utiliser le mot de passe tel quel)
À partir de l'écran ci-dessus, sélectionnez «Sécurité» -> «Mot de passe de l'application», sélectionnez Application: Mail, Appareil (mac dans mon cas), puis appuyez sur le bouton Générer pour afficher le mot de passe de l'application.
Heureusement, ruby a un bijou pour envoyer gmail, donc je vais l'utiliser.
gem install ruby-gmail
ruby-gmail gem semble être intéressant car il a diverses fonctions telles que la lecture et l'édition des mails reçus en plus d'envoyer simplement des mails.
Du point de vue de la sécurité, l'adresse gmail et le mot de passe de l'application obtenus précédemment doivent être définis dans la variable d'environnement au lieu d'être solidement écrits dans le programme, et doivent être obtenus par le programme.
export GMAIL_ID="L'adresse Gmail que vous souhaitez envoyer"
export GMAIL_PASS="mot de passe de l'application Gmail"
Reflète les variables d'environnement définies.
source ~/.bash_profile
Cette fois, vous pouvez entrer n'importe quelle adresse de destination, sujet et corps sur la commande.
require "gmail"
USERNAME = ENV[ "GMAIL_ID" ]
PASSWORD = ENV[ "GMAIL_PASS"]
gmail = Gmail.new(USERNAME, PASSWORD)
puts "Veuillez saisir l'adresse de destination"
address_to = gets.chomp
puts "Veuillez entrer un sujet"
title = gets.chomp
puts "Veuillez saisir le texte"
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
J'y ai fait référence pour la majeure partie du programme. Je suis très reconnaissant.
[[Ruby] Envoyer un e-mail avec un compte Gmail - Note de programmation de 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