rails에서 메일 양식에서 사이트 관리자와 보낸 사람에게 메일을 보내는 구현에 대해 알려 주시겠습니까?
자신의 홈페이지를 만들고 있습니다.
html과 css를 rails에 반영시켜 홈페이지를 만들고 있으며 문의 양식의 메일 발송 기능 부분에서 발을 디디고 있습니다.
누군가 상세한 분, 가르쳐 주실 수 있습니까?
app/mailers/contact_mailer.rb
contact_mailer.rb
class ContactMailer < ApplicationMailer::Base
default from: "[email protected]",
reply_to: "[email protected]",
charset: 'UTF-8'
def received_email(arg)
@arg = arg
@greeting = "Hi"
mail (to: "[email protected]", cc: "#ここに自分のGメールアドレスを記入しています", subject: '【MIYUKImémoires】ご連絡、ありがとうございます。')
end
end
app/controllers/contact_controller.rb
contact_controller.rb
class ContactController < ApplicationController
def index
@contact = Contact.new
end
def received_emailcon
arg = ContentModel.find(1)
@mail = ContentMailer.received_email(arg).deliver
render text: 'メール送信完了'
end
end
app/views/contact_mailer/received_email.text.erb
received_email.text.erb
--------------------------
Name:<br>
<%= @contacts.name %>
Email:<br>
<%= @contacts.email %>
Text:<br>
<%= @contacts.text %>
--------------------------
app/confing/environments/development.rb
development.rb
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
:enable_starttls_auto => true,
:address => "smtp.gmail.com",
:port => 587,
:domain => 'gmail.com',
:user_name => "#自分のgmailアドレス",
:password => "#自分のgmailアドレスのパスワード",
:authentication => 'plain'
}
app/views/contact_mailer/received_email.html.erb
received_email.html.erb
ContactMailer#received_email
<%= @greeting %>, find me in /app/views/contact_mailer/received_email.html.erb
<h2>テスト</h2>
<p>あいうえおかきくけこさしすせそたちつてとなにぬねのあいうえおかきくけこさしすせそたちつてとなにぬねのあいうえおかきくけこさしすせそたちつてとなにぬねのあいうえおかきくけこさしすせそたちつてとなにぬねのあいうえおかきくけこさしすせそたちつてとなにぬねのあいうえおかきくけこさしすせそたちつてとなにぬねの</p>
app/views/contact/index.html.erb
index.html.erb
<%= form_for @contact, :url => contact_create_path do |f| %>
<% if @contact.errors.any? %>
<div class="alert alert-danger" role="alert">
<strong>入力内容にエラーがあります</strong>
<ul>
<% @contact.errors.each do |attr, msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<h3>メッセージを送る</h3>
<table class="table">
<tr>
<td><%= f.text_field :name, placeholder: 'お名前(必須)', class: 'name' %></td>
</tr>
<tr>
<td><%= f.text_field :email, placeholder: 'メールアドレス(必須)', class: 'email' %></td>
</tr>
<tr>
<td><%= f.text_area :text, placeholder: 'よかったら、メッセージをお願いします!', rows: '10', class: 'text' %></td>
</tr>
</table>
<div class="submit">
<%= f.submit 'SENT', class: 'submit-button' %>
</div>
<% end %>
app/views/contact/create.html.erb
create.html.erb
<div class="contents">
<div class="success">
<h3>投稿が完了しました。</h3>
<a class="btn" href="/top">一覧へ戻る</a>
</div>
</div>
app/confing/routes.rb
routes.rb
Rails.application.routes.draw do
root "top#index"
get "top" => "top#index"
get "top/profile" => "top#profile"
get "top/cost" => "top#cost"
get "contact" => "contact#index"
post "contact/create" => "contact#create"
end
app/models/contact.rb
contact.rb
class Contact
include ActiveModel::Model
attr_accessor :name, :email, :text #これ大事
validates :name, :presence => {:message => 'お名前(ニックネームも可)'}
validates :email, :presence => {:message => 'メールアドレス'}
validates :text, :presence => {:message => 'よかったら、メッセージをお願いします!'}
end
이미지처럼 보기는 움직이고 있지만 메일 자체는 멈추지 않았습니다.
어떻게 SENT 버튼을 클릭하는 동시에 관리자 측과 발신자에게 메일을 보낼 수 있습니까?
시험에 참고로 한 사이트의 코드를 복사하기도 했습니다. 상당히 짜증나고 있을지도 모릅니다.
Reference
이 문제에 관하여(rails에서 메일 양식에서 사이트 관리자와 보낸 사람에게 메일을 보내는 구현에 대해 알려 주시겠습니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/miyuki651020/items/69884045ae2f5a9aedd3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)