Ruby on Rails Implementierung der automatischen Mail-Sendefunktion

Inhalt

Implementieren Sie eine Funktion zum automatischen Senden einer Bestätigungs-E-Mail an die registrierte E-Mail-Adresse.

Implementierung

① Anwendung erstellen

Erstellen Sie eine App namens sample.

$ rails new sample

Verzeichnis verschieben.

$ cd sample

Wir erstellen eine App, die an die neu hinzugefügte E-Mail-Adresse gesendet werden soll. Erstellen Sie daher eine Benutzertabelle. Dieses Mal werden wir zwei Spalten haben.

$ rails g scaffold User name email

Erstellen Sie eine Datenbank.

$ rails db:migrate

② Einstellungen für die E-Mail-Übertragung

Ich werde es so einstellen, dass ich Google Mail senden kann. ①config/environments/development.rb  ②config/environments/production.rb Bitte fügen Sie Folgendes zu ① und ② hinzu.


Rails.application.configure do
  config.action_mailer.raise_delivery_errors = true  #Wechseln Sie von falsch zu wahr
 #Unterlassung#
  config.action_mailer.delivery_method = :smtp 
  config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    domain: 'smtp.gmail.com',
    port: 587,
    user_name: Rails.application.credentials.gmail[:user_name],
    password: Rails.application.credentials.gmail[:password],
    authentication: 'login',
    enable_starttls_auto: true
  }
end

③ Mailer erstellen

Es spielt eine Rolle als Controller beim Senden von E-Mails.

Der Name des Mailers lautet SampleMailer.

$ rails g mailer SampleMailer

Bei der Ausführung werden die folgenden zwei Mailer unter App / Mailer erstellt.

① application_mailer "Einstellung des gesamten Mailers" ② sample_mailer "Einstellung eines einzelnen Mailers namens SampleMailer, der zuvor erstellt wurde"

③ Mailer-Bearbeitung

① application_mailer "Einstellung des gesamten Mailers"

app/mailers/application_mailer.rb


class ApplicationMailer < ActionMailer::Base
  default from:     "Yamada Taro",  #Name des Absenders
          reply_to: Rails.application.credentials.gmail[:user_name] #E-Mail-Adresse des Absenders
  layout 'mailer'
end

② sample_mailer "Individuelle Mailer-Einstellungen"

app/mailers/sample_mailer.rb


class PostMailer < ApplicationMailer
  default from: "Yamada Taro"
  def published_email(user)
    @user = user
    mail to: user.email  #Neu registrierte E-Mail-Adresse
  end
end

④ Erstellen Sie den Text der E-Mail

Der Text der E-Mail wird unter app / views / sample_mailer erstellt. Es gibt zwei Arten von E-Mail-Text, "HTML-Version" und "Textversion".

Dieses Mal werden wir dies schaffen. ① Published_email.html.erb "HTML-Version" ② shared_email.tex.erb "Textversion"

html:app/views/sample_mailer/published_email.html.erb


<!doctype html>
<html lang="ja">
<head>
  <meta content="text/html; charset=UTF-8" />
</head>
<body>
  <h2><%= @user.name %>Herr</h2>
  <hr />
  <p>
Hallo!<%= @user.name %>San!</p>
  <hr />
</body>
</html>

html:app/views/sample_mailer/published_email.text.erb


===============================
<%= @user.name %>Herr
===============================
 
Hallo!<%= @user.name %>Herr.

⑥ Controller bearbeiten

Fügen Sie der "create method" des Controllers eine Zeile hinzu.

app/controllers/users_controller.rb


class UsersController < ApplicationController
    #Unterlassung
  def create
    @user = User.new(user_params)
  
    respond_to do |format|
      if @user.save
        SampleMailer.published_email(@user).deliver #Füge das hinzu.
        format.html { redirect_to @user, notice: 'User was successfully created.' }
        format.json { render :show, status: :created, location: @user }
      else
        format.html { render :new }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end
   #Unterlassung
end

⑥ Routing bearbeiten

Stellen Sie schließlich das Routing ein und Sie sind fertig.

config/routes.rb



Rails.application.routes.draw do
  resources :users
  root "users#index"  #Füge das hinzu.
end

Lass es uns starten und am Ende überprüfen!

$ rails s

Der Bildschirm wird so herauskommen! Bitte tatsächlich bedienen und prüfen.

Wenn Sie Ihren Namen und Ihre E-Mail-Adresse registrieren, wird automatisch eine E-Mail gesendet. 9.png

Dies ist das Ende der Implementierung. Danke fürs Zuschauen.

Recommended Posts

Ruby on Rails Implementierung der automatischen Mail-Sendefunktion
Ruby on Rails Einstellung der automatischen E-Mail-Sendefunktion (über Google Mail)
[Ruby on Rails] Implementierung der Kommentarfunktion
[Ruby on Rails] Folgen Sie der Funktionsimplementierung: Bidirektional
[Ruby on Rails] Implementierung einer ähnlichen Funktion
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
Ruby on Rails So implementieren Sie die automatische Adresseneingabe
Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)
[Ruby on Rails] CSV-Ausgabefunktion
[Ruby on Rails] DM, Chat-Funktion
[Ruby on Rails] Suchfunktion (nicht ausgewählt)
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
[Ruby on Rails] Logisches Löschen (Auszahlungsfunktion)
Validierungseinstellungen für die Ruby on Rails-Anmeldefunktion
Ruby on Rails Elementary
Ruby on Rails Grundlagen
Ruby On Rails Association
[Ruby on Rails] Nachbearbeitungsfunktion (Aktualisieren, Löschen)
[Ruby on Rails] Asynchrone Kommunikation der Posting-Funktion, Ajax
[Ruby on Rails] Post-Score-Ranking-Funktion (gesamte Anzeige)
[Ruby on Rails] Post-Bildvorschau-Funktion in Refile
[Ruby on Rails] Suchfunktion (Modell, Methodenauswahlformel)
Erklärung von Ruby on Rails für Anfänger ⑦ ~ Flash-Implementierung ~
Implementierung der Fuzzy-Suchfunktion für Schienen
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
Ruby on Rails Lernrekord -2020.10.04
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
Ruby on Rails lernen Rekord-2020.10.07 ②
[Rails] Implementierung der Kategoriefunktion
Ruby on Rails lernen Rekord-2020.10.07 ①
Brechen Sie die Ruby on Rails-Migration ab
[Rails] Implementierung der Tutorial-Funktion
Ruby on Rails Lernrekord -2020.10.06
[Rails] Implementierung einer ähnlichen Funktion
Zusammenfassung der Ruby on Rails-Validierung
Ruby on Rails Grundlegendes Memorandum
[Ruby on Rails] Lesezeichenfunktion (bevorzugte Registrierung, wie): Eine Richtung
Ein Hinweis zum Seed-Feature von Ruby on Rails
[Ruby on Rails] Implementieren Sie die Anmeldefunktion von add_token_to_users mit API
[Rails] Asynchrone Implementierung der Like-Funktion
[Ruby on Rails] Leseversuch (: [],: Schlüssel)
Ruby on Rails-Variablen, konstante Zusammenfassung
Installation von Ruby + Rails unter Ubuntu 18.04 (rbenv)
[Rails] Implementierung der Bildvorschau
Grundkenntnisse in Ruby on Rails