J'ai été en mesure de créer un formulaire de contact que lorsqu'un utilisateur clique sur soumettre - son envoyer un e-mail et que je reçois dans ma boîte de réception. Je voudrais que cet email soit envoyé via sendgrid pour que je puisse analyser les analyses. J'ai regardé le cours Gorails Sendgrid et j'ai pu envoyer un email via sendgrid mais je ne sais pas comment l'appliquer à mon formulaire de contact. J'ai listé mon code ci-dessous, toute aide serait incroyable. Merci beaucoup!Rails Comment lier un formulaire d'email avec Sendgrid?
new.html.erb (Formulaire de contact qui envoie un e-mail régulièrement lorsqu'un internaute clique Soumttre)
<div align="center">
<h3>Send A message to Us</h3>
<%= form_for @contact do |f| %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name, :required => true %>
</div>
<div class="field">
<%= f.label :email %><br>
<%= f.email_field :email, :required => true %>
</div>
<div class="field">
<%= f.label :message %><br>
<%= f.text_area :message, :as => :text, :required => true %>
</div>
<div class="actions">
<%= f.submit "Send Message", :class => "btn btn-primary btn-md"%>
</div>
<% end %>
</div>
contacts_controller.rb
class ContactsController < ApplicationController
def new
@contact = Contact.new
end
def create
@contact = Contact.new(contact_params)
@contact.request = request
if @contact.deliver
flash.now[:notice] = 'Thank you for your message. We will contact you soon!'
else
flash.now[:error] = 'Cannot send message.'
render :new
end
end
private
def contact_params
params.require(:contact).permit(:name, :email, :message)
end
end
Sendgrid.rb (à l'intérieur mon dossier config> initializers)
ActionMailer::Base.smtp_settings = {
:user_name => 'apikey',
:password => Rails.application.secrets.sendgrid_api_key,
:domain => 'tango.co',
:address => 'smtp.sendgrid.net',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
development.rb
config.action_mailer.perform_caching = false
config.action_mailer.delivery_method = :smtp
ActionMailer::Base.smtp_settings = {
:user_name => 'apikey',
:password => Rails.application.secrets.sendgrid_api_key,
:domain => 'tango.co',
:address => 'smtp.sendgrid.net',
:port => 587,
:authentication => :plain,
:enable_starttls_auto => true
}
Mailers dossier (je n'ai que deux fichiers Notification et demande aucun accord avec mes contacts Formulaire)