如何在Rails中将HTML表单数据作为电子邮件发送? (不使用宝石)

时间:2018-03-16 09:11:50

标签: html ruby-on-rails ruby forms

我第一次使用rails来开发Web应用程序。

在我的index.html.erb我有一个html联系表格,看起来像这样。

<form  method="post" name="frmContentDownload"><!-- /. form handling starts here-->

      <div><label for="FirstName1">First Name</label><input class="form-control" name="FirstName1" type="text" value="" /></div>
      <div><label for="LastName1">Last Name</label><input class="form-control" name="LastName1" type="text" value="" /></div>
      <div><label for="emailAddress">Email</label><input class="form-control" name="emailAddress" type="text" value="" /></div>
      <div><label for="PhoneNumber">Phone</label><input class="form-control" name="PhoneNumber" type="text" value="" /></div>
      <div><label for="Title1">Title</label><input class="form-control" name="Title1" type="text" value="" /></div>
      <div><label for="StateProvince1">State or Province</label><select class="form-control" name="StateProvince1">
        <option class="placeholder" value="" disabled selected>COUNTRY &#8609;</option>
        <option value="CA">Canada</option>
        <option value="UK">United Kingdom</option>
        <option value="US">United States</option>
      </select></div>

        <div><label for="comments">Comments</label><input class="form-control" name="comments" type="text" value="" /></div>

        <div><input class="btn btn-primary btn-lg btn-block" type="submit" value="Contact Us" /></div>
</form>    

我正在尝试了解如何将其连接起来,以便将联系信息发送到我的电子邮箱。我知道有红宝石可以做到这一点,但我很满意表格的美感,不想使用宝石进行表格处理。

heroku版本为here

任何转向都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

首先,您需要安装smtp服务器来发送电子邮件,Heroku有一个用于Sendgrid电子邮件安装的附加组件并配置它。

然后运行以下命令以创建电子邮件类和模板

rails generate mailer ContactMailer

它将生成如下

create  app/mailers/contact_mailer.rb
create  app/mailers/application_mailer.rb
invoke  erb
create    app/views/contact_mailer
create    app/views/layouts/mailer.text.erb
create    app/views/layouts/mailer.html.erb
invoke  test_unit
create    test/mailers/contact_mailer_test.rb
create    test/mailers/previews/contact_mailer_preview.rb

您可以对基本Rails Mailer进行此操作,此处还有一个full tutorial,用于发送包含联系表单和邮件文件夹结构的电子邮件,邮件类和模板如何协同工作。