如何在Ruby中循环特定块

如何在Ruby中循环特定块,ruby,Ruby,我想循环邮件正文,这样它会一直发送电子邮件,直到按下Ctrl+c。我该怎么做 Mail.deliver do to 'mikel@test.lindsaar.net' from 'ada@test.lindsaar.net' subject 'testing sendmail' body 'testing sendmail' #how to loop the body to keep sending email end 要开始无限循环,您可以使用: loop do

我想循环邮件正文,这样它会一直发送电子邮件,直到按下Ctrl+c。我该怎么做

 Mail.deliver do
   to 'mikel@test.lindsaar.net'
   from 'ada@test.lindsaar.net'
   subject 'testing sendmail'
   body 'testing sendmail' #how to loop the body to keep sending email
 end

要开始无限循环,您可以使用:

loop do
  # email sending logic here
end
另一个选择是:

while true
  # email sending logic here
end
另一个问题是:

until false
  # email sending logic here
end
你有主意了。只有当你停下来的时候,它们才会停下来

 loop do
  Mail.deliver do
    to 'mikel@test.lindsaar.net'
    from 'ada@test.lindsaar.net'
    subject 'testing sendmail'
    body 'testing sendmail' #how to loop the body to keep sending email
  end
end
编辑 在评论中讨论之后,这里是如何将
body
作为参数传递的:

def send_mail(body) # pass an argument called `body`
  Mail.deliver do
    to      'mikel@test.lindsaar.net'
    from    'ada@test.lindsaar.net'
    subject 'testing sendmail'
    body    body # use passed into the method argument
  end
end
用法:

send_email('this is a demo body')

不行,兄弟,我已经试过了,问题是直到邮件的最后一个结尾,正文才被发送。deliver do,当我添加循环时,它会进入正文之间,所以它只循环正文,而不会满足end@noname我不明白你的意思。将电子邮件发送代码放入循环中,您就很好了。编程就是编程,没有循环不起作用的事情。是的。我只想循环正文,而不是整个邮件。交付,如果我循环整个内容,我将无法使用用户输入发送电子邮件,我希望你理解我想说的,如果我循环整个内容,我必须只使用一封电子邮件,但我需要这样做,以便我可以选择任何我想要发送的电子邮件。。。对不起,英语不是我的第一语言,所以你想让
正文
使用用户的输入?为什么不将body作为参数传递并使用它呢?是的,如果我循环整个过程,我将无法选择每次运行代码时要发送给谁,或者要使用哪个电子邮件id发送邮件。。这就是为什么我只需要循环邮件正文,所以每次运行脚本时,我都可以选择要发送给谁等等。。你能给我举一个通过正文作为参数的例子吗?请读“”。我们希望看到您解决问题的尝试,以及对哪些不起作用的描述。""他说。