Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何向所有Desive用户发送邮件?_Ruby On Rails_Ruby On Rails 3_Devise - Fatal编程技术网

Ruby on rails 如何向所有Desive用户发送邮件?

Ruby on rails 如何向所有Desive用户发送邮件?,ruby-on-rails,ruby-on-rails-3,devise,Ruby On Rails,Ruby On Rails 3,Devise,我的rails应用程序上有100个Desive用户,我想给他们发送电子邮件。我有SMTP的详细信息,我正试图遵循这个例子 我的问题是我无法理解如何使它工作 我创造了 rails g mailer newsletter single_email 但我不知道如何从那里得到它,任何帮助都将受到高度赞赏 编辑-这是我到目前为止得到的,对吗 # app/mailers/user_mailer.rb class UserMailer < ActionMailer::Base def newsl

我的rails应用程序上有100个Desive用户,我想给他们发送电子邮件。我有SMTP的详细信息,我正试图遵循这个例子

我的问题是我无法理解如何使它工作

我创造了

rails g mailer newsletter single_email
但我不知道如何从那里得到它,任何帮助都将受到高度赞赏

编辑-这是我到目前为止得到的,对吗

# app/mailers/user_mailer.rb

class UserMailer < ActionMailer::Base
  def newsletter(user)
    mail( to: user.email, subject: "Your subject")   
  end
end

# /lib/tasks/newsletter.rake

task :send_newsletter => :environment do
  User.all.each do |user|
    UserMailer.newsletter(user).deliver
  end
end
#app/mailers/user_mailer.rb
类UserMailer:环境执行
User.all.each do | User|
UserMailer.newsletter(user.deliver)
结束
结束

这取决于您希望在何时何地发送此电子邮件

def single_email(users_email)
 mail( to: users_email, subject: "Your subject")
end
现在,您可以从控制器或模型调用它。还要为电子邮件创建一个html

 NewsletterMailer.single_email(User.all.map(&:email).join(';')).deliver

这取决于您何时何地发送此电子邮件

def single_email(users_email)
 mail( to: users_email, subject: "Your subject")
end
现在,您可以从控制器或模型调用它。还要为电子邮件创建一个html

 NewsletterMailer.single_email(User.all.map(&:email).join(';')).deliver

这取决于您何时何地发送此电子邮件

def single_email(users_email)
 mail( to: users_email, subject: "Your subject")
end
现在,您可以从控制器或模型调用它。还要为电子邮件创建一个html

 NewsletterMailer.single_email(User.all.map(&:email).join(';')).deliver

这取决于您何时何地发送此电子邮件

def single_email(users_email)
 mail( to: users_email, subject: "Your subject")
end
现在,您可以从控制器或模型调用它。还要为电子邮件创建一个html

 NewsletterMailer.single_email(User.all.map(&:email).join(';')).deliver

您可以为此创建一个rake任务:

# /lib/tasks/newsletter.rake

task :send_newsletter => :environment do
  User.find_each do |user|
    UserMailer.newsletter(user).deliver
  end
end
这将迭代所有
用户
,并从命令行运行
rake send\u newsletter
时使用生成器创建的
newsletter中调用
single\u email

基本邮件程序如下所示:

# /app/mailers/user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: 'newsletter@example.com'

  def newsletter(user)
    @user = user
    mail(to: @user.email, subject: 'My newsletter')
  end
end
# app/views/user_mailer/newsletter.html.erb

<!DOCTYPE html>
<html>
  <head>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
  </head>
  <body>
    <h1>Hello <%= @user.name %></h1>
    <p>more text...</p>
  </body>
</html>

本例假设您的
用户
模型有一个
名称
-这只是为了向您显示您可以在邮件视图中访问
@User
,因为您之前在
def新闻稿(User)
中设置了
@User

您可以为此创建一个rake任务:

# /lib/tasks/newsletter.rake

task :send_newsletter => :environment do
  User.find_each do |user|
    UserMailer.newsletter(user).deliver
  end
end
这将迭代所有
用户
,并从命令行运行
rake send\u newsletter
时使用生成器创建的
newsletter中调用
single\u email

基本邮件程序如下所示:

# /app/mailers/user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: 'newsletter@example.com'

  def newsletter(user)
    @user = user
    mail(to: @user.email, subject: 'My newsletter')
  end
end
# app/views/user_mailer/newsletter.html.erb

<!DOCTYPE html>
<html>
  <head>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
  </head>
  <body>
    <h1>Hello <%= @user.name %></h1>
    <p>more text...</p>
  </body>
</html>

本例假设您的
用户
模型有一个
名称
-这只是为了向您显示您可以在邮件视图中访问
@User
,因为您之前在
def新闻稿(User)
中设置了
@User

您可以为此创建一个rake任务:

# /lib/tasks/newsletter.rake

task :send_newsletter => :environment do
  User.find_each do |user|
    UserMailer.newsletter(user).deliver
  end
end
这将迭代所有
用户
,并从命令行运行
rake send\u newsletter
时使用生成器创建的
newsletter中调用
single\u email

基本邮件程序如下所示:

# /app/mailers/user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: 'newsletter@example.com'

  def newsletter(user)
    @user = user
    mail(to: @user.email, subject: 'My newsletter')
  end
end
# app/views/user_mailer/newsletter.html.erb

<!DOCTYPE html>
<html>
  <head>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
  </head>
  <body>
    <h1>Hello <%= @user.name %></h1>
    <p>more text...</p>
  </body>
</html>

本例假设您的
用户
模型有一个
名称
-这只是为了向您显示您可以在邮件视图中访问
@User
,因为您之前在
def新闻稿(User)
中设置了
@User

您可以为此创建一个rake任务:

# /lib/tasks/newsletter.rake

task :send_newsletter => :environment do
  User.find_each do |user|
    UserMailer.newsletter(user).deliver
  end
end
这将迭代所有
用户
,并从命令行运行
rake send\u newsletter
时使用生成器创建的
newsletter中调用
single\u email

基本邮件程序如下所示:

# /app/mailers/user_mailer.rb

class UserMailer < ActionMailer::Base
  default from: 'newsletter@example.com'

  def newsletter(user)
    @user = user
    mail(to: @user.email, subject: 'My newsletter')
  end
end
# app/views/user_mailer/newsletter.html.erb

<!DOCTYPE html>
<html>
  <head>
    <meta content='text/html; charset=UTF-8' http-equiv='Content-Type' />
  </head>
  <body>
    <h1>Hello <%= @user.name %></h1>
    <p>more text...</p>
  </body>
</html>


本例假设您的
用户
型号有一个
名称
-这只是为了显示您可以在邮件视图中访问
@User
,因为您在
def新闻稿(用户)中设置了
@User
之前。

我想立即发送电子邮件,因此不需要安排时间,但我不确定如何触发该单一电子邮件操作?你能更详细地说明这一点吗?谢谢你可以把这句话放在你的邮箱里。一封电子邮件(User.all.map(&:email)。加入(“;”)。在你的管理员的任何行动中发送。把它放在根控制器上。您也可以将其放入初始值设定项中,这样当您重新启动服务器时,它将触发该操作。谢谢,我已将我有疑问的当前代码放入其中,是否正确?这将分别向每个用户发送邮件。因此,如果100个用户,它将发送100封邮件,这将花费很长时间。如果您必须在邮件中发送一些动态内容,例如用户名,那么我不确定您是否需要使用sendgrid,或者如果您的内容对于所有用户都是相同的,那么只需单独发送所有用户的电子邮件;在一个单一的时间里,嗨,这个解决方案比Janfeh上面建议的好吗?我仍然不确定如何从控制器或模型调用此方法?我想立即发送电子邮件,因此不需要安排时间,但我不确定如何触发该单个电子邮件操作?你能更详细地说明这一点吗?谢谢你可以把这句话放在你的邮箱里。一封电子邮件(User.all.map(&:email)。加入(“;”)。在你的管理员的任何行动中发送。把它放在根控制器上。您也可以将其放入初始值设定项中,这样当您重新启动服务器时,它将触发该操作。谢谢,我已将我有疑问的当前代码放入其中,是否正确?这将分别向每个用户发送邮件。因此,如果100个用户,它将发送100封邮件,这将花费很长时间。如果您必须在邮件中发送一些动态内容,例如用户名,那么我不确定您是否需要使用sendgrid,或者如果您的内容对于所有用户都是相同的,那么只需单独发送所有用户的电子邮件;在一个单一的时间里,嗨,这个解决方案比Janfeh上面建议的好吗?我仍然不确定如何从控制器或模型调用此方法?我想立即发送电子邮件,因此不需要安排时间,但我不确定如何触发该单个电子邮件操作?你能更详细地说明这一点吗?谢谢你可以把这句话放在你的邮箱里。一封电子邮件(User.all.map(&:email)。加入(“;”)。在你的管理员的任何行动中发送。把它放在根上