rails에서 메일 양식에서 사이트 관리자와 보낸 사람에게 메일을 보내는 구현에 대해 알려 주시겠습니까?

5152 단어 HTML질문mailRails

자신의 홈페이지를 만들고 있습니다.



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 버튼을 클릭하는 동시에 관리자 측과 발신자에게 메일을 보낼 수 있습니까?

시험에 참고로 한 사이트의 코드를 복사하기도 했습니다. 상당히 짜증나고 있을지도 모릅니다.

좋은 웹페이지 즐겨찾기