Ruby on rails Rails:当用户下订单时,如何向用户发送订单电子邮件?
我第一次构建了一个基于rails的电子商务应用程序。我想在用户提交订单时向其发送一封电子邮件,就像我们在mealnut.com或fab.com上下订单时收到电子邮件收据的方式一样。我正在搜索教程,但与订单提交电子邮件无关。每个用户注册或重置等 有人实施过吗?或者了解rails中的任何资源/教程Ruby on rails Rails:当用户下订单时,如何向用户发送订单电子邮件?,ruby-on-rails,ruby-on-rails-3,e-commerce,Ruby On Rails,Ruby On Rails 3,E Commerce,我第一次构建了一个基于rails的电子商务应用程序。我想在用户提交订单时向其发送一封电子邮件,就像我们在mealnut.com或fab.com上下订单时收到电子邮件收据的方式一样。我正在搜索教程,但与订单提交电子邮件无关。每个用户注册或重置等 有人实施过吗?或者了解rails中的任何资源/教程 感谢您的指导/帮助 恐怕发送电子邮件是一个相当标准的程序。。您找到的教程可能也适用。您需要了解,可以通过任何控制器操作触发要发送的消息。。在您的情况下,您需要订单创建操作 在阅读以下内容后: 您可以进行
感谢您的指导/帮助 恐怕发送电子邮件是一个相当标准的程序。。您找到的教程可能也适用。您需要了解,可以通过任何控制器操作触发要发送的消息。。在您的情况下,您需要订单创建操作 在阅读以下内容后: 您可以进行必要的更改,并从订单创建操作中呼叫邮件发送者:
class OrdersController < ApplicationController
def create
@order = Order.new(params[:order])
if @order.save
UserMailer.order_confirmation(@order, @user).deliver
redirect_to @user, notice: "Order Completed Successfully."
else
render :new
end
end
end
class OrdersController
我在上面使用UserMailer的原因是,您可能希望设置一个向用户发送消息的邮件程序,但如果您愿意,可以称之为OrderMailer。发送电子邮件恐怕是一个相当标准的过程。。您找到的教程可能也适用。您需要了解,可以通过任何控制器操作触发要发送的消息。。在您的情况下,您需要订单创建操作 在阅读以下内容后: 您可以进行必要的更改,并从订单创建操作中呼叫邮件发送者:
class OrdersController < ApplicationController
def create
@order = Order.new(params[:order])
if @order.save
UserMailer.order_confirmation(@order, @user).deliver
redirect_to @user, notice: "Order Completed Successfully."
else
render :new
end
end
end
class OrdersController
我在上面使用UserMailer的原因是,您可能希望设置一个向用户发送消息的邮件程序,但如果需要,可以将其称为OrderMailer。首先生成邮件程序以编写所需操作
rails g mailer UserMailer
然后在app/mailers/user_mailer.rb文件中
class UserMailer < ActionMailer::Base
default from: 'notifications@example.com'
def order_confirmation(user, order)
@user = user
@order = order
mail(to: user.email, subject: 'Order has been received')
end
end
然后在控制器操作中,您将在其中创建订单,在创建订单后放置下一行以发送电子邮件
UserMailer.order_confirmation(user, order).deliver
有关详细信息,请参阅。首先生成用于编写所需操作的邮件程序
rails g mailer UserMailer
然后在app/mailers/user_mailer.rb文件中
class UserMailer < ActionMailer::Base
default from: 'notifications@example.com'
def order_confirmation(user, order)
@user = user
@order = order
mail(to: user.email, subject: 'Order has been received')
end
end
然后在控制器操作中,您将在其中创建订单,在创建订单后放置下一行以发送电子邮件
UserMailer.order_confirmation(user, order).deliver
有关详细信息,请参阅。您不能/不适合使用Deave-mailer(因为Deave-mailer用于用户身份验证)。您可以做的是,您可以使用observer类来发送电子邮件 例:
类顺序
订单创建完成后,此OrderObserver会发送一封电子邮件
关于使用rails3发送电子邮件,与发送放弃密码/注册等的电子邮件相同,只是内容不同。您不能/不适合使用Desive mailer(因为Desive mailer用于用户身份验证)。您可以做的是,您可以使用observer类来发送电子邮件 例:
类顺序
订单创建完成后,此OrderObserver会发送一封电子邮件
关于使用rails3发送电子邮件,与发送放弃密码/注册等的电子邮件相同,只是内容不同。给出详细的建议意味着需要更多的细节,因此一些一般性建议:在接下来的过程中,您将完成您的案例所需的所有步骤,但是你需要根据自己的情况调整它们。给出详细的建议意味着需要更多的细节,因此一些一般性的建议:在未来,你也将经历你的案例所需的所有步骤,但你需要根据自己的情况调整它们。我有一个设计邮件程序。太困惑了。我应该使用UserMailer吗?或者可以使用设计邮递器?没问题,很高兴它帮助了你:)我有一个设计邮递器。太困惑了。我应该使用UserMailer吗?或者可以使用Desive-mailer?没问题,很高兴它对您有所帮助:)我相信rails 4中的观察器已经被弃用了。我会在您的订单模型中保留您创建的售后服务。但是您可能没有触发“创建”。您可能希望在订单状态从“进行中”变为“已付款”时触发。我相信rails 4中的观察员已被弃用。我会在您的订单模型中保留您创建的售后服务。但是您可能没有触发“创建”。您可能希望在订单状态从“进行中”变为“已付款”时触发。