Contact form submitted but I don't receive any email :(

37 views Asked by At

When I complete the form it is sent but I don't receive it in my gmail account

I created controllers and views with contact mailer in my Ruby app.

Here is the contact.html.erb code:

 <div class="contact-form">
        <form action="/contact" method="post">
            <div class="contact-form-grid-2">
              <div class="form-group">
                  <label for="nom">Nom</label>
                  <input type="text" id="nom" name="nom" required>
              </div>
              <div class="form-group">
                  <label for="mail">Email</label>
                  <input type="email" id="mail" name="mail" required>
              </div>
              <div class="form-group">
                  <label for="telephone">Téléphone</label>
                  <input type="tel" id="telephone" name="telephone" required>
              </div>
              <div class="form-group">
                  <label for="expertise">Expertises</label>
                  <select id="expertise" name="expertise[]" class="form-group" multiple>
                      <option value="famille">Famille</option>
                      <option value="placement">Placement</option>
                      <option value="entrepreneurs">Entrepreneurs</option>
                      <option value="emprunt">Emprunt</option>
                      <option value="assistance">Assistance Administrative</option>
                      <option value="impots">Fiscalité</option>
                  </select>
              </div>
              <div class="form-group" style="grid-column: span 2;"> <!-- Permet au champ de message de prendre toute la largeur -->
                  <label for="message">Message</label>
                  <textarea id="message" name="message" class="wide-input" placeholder="Message" required style="font-weight: lighter;"></textarea>
              </div>
              <div class="button-form-block">
                <input type="hidden" name="authenticity_token" value="<%= form_authenticity_token%>">
                <input type="submit" name="commit" value="ENVOYER" class="button-form">
              </div>
            </div> <!-- Bouton sous le champ de message -->
        </form>
      </div>
  </div>
</div>

Here is the contact controller:

class ContactController < ApplicationController
  def new
  end

  def create
    nom = params[:nom]
    email = params[:mail]
    telephone = params[:telephone]
    expertises = params[:expertise]
    message = params[:message]

    # Envoi du message par e-mail
    ContactMailer.contact_email(nom, email, telephone, expertises, message).deliver_now

    # Redirigez l'utilisateur vers une page de confirmation
    redirect_to contact_confirmation_path
  end

  def confirmation
    render template: 'contact/_confirmation'
  end
end

Here is the contact mailer controller :

class ContactMailer < ApplicationMailer
  default from: 'MY EMAIL'

  def contact_email(nom, email, telephone, expertises, message)
    @nom = nom
    @email = email
    @telephone = telephone
    @expertises = expertises
    @message = message

    mail(to: 'MY EMAIL', subject: 'new message from the website XX')
  end
end

And I have that in the development.rb file:

  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = {
    address: 'smtp.gmail.com',
    port: 587,
    user_name: ENV['GMAIL_USERNAME'],
    password: ENV['GMAIL_PASSWORD'],
    authentication: 'plain',
    enable_starttls_auto: true
  }

Thank you for your help !

1

There are 1 answers

0
Kinley Wangchuk On
mail(to: 'MY EMAIL', subject: 'new message from the website XX')

should be

mail(to: @email, subject: 'new message from the website XX')

? it would be better if you could share errors if any.