Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.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 如何序列化和反序列化邮件程序?_Ruby On Rails_Ruby_Email_Serialization_Actionmailer - Fatal编程技术网

Ruby on rails 如何序列化和反序列化邮件程序?

Ruby on rails 如何序列化和反序列化邮件程序?,ruby-on-rails,ruby,email,serialization,actionmailer,Ruby On Rails,Ruby,Email,Serialization,Actionmailer,如何序列化邮件程序,以便将其存储以供进一步使用 序列化的数据应断开连接并自给自足,以便在单独的机器上传递该消息(不知道数据库或任何其他信息)。假设您通常发送带有以下内容的电子邮件: MyMailer.some_email(...).deliver 您可以将其转换为字符串,然后将字符串传输到另一台服务器: raw_mail = MyMailer.some_email(...).to_s 在另一台服务器上,发送电子邮件: Mail.new(raw_mail).deliver 除了没有Mail#

如何序列化邮件程序,以便将其存储以供进一步使用


序列化的数据应断开连接并自给自足,以便在单独的机器上传递该消息(不知道数据库或任何其他信息)。

假设您通常发送带有以下内容的电子邮件:

MyMailer.some_email(...).deliver
您可以将其转换为字符串,然后将字符串传输到另一台服务器:

raw_mail = MyMailer.some_email(...).to_s
在另一台服务器上,发送电子邮件:

Mail.new(raw_mail).deliver

除了没有
Mail#send
方法外,这似乎是可行的。我尝试了
Mail#deliver
,但我认为它没有选择邮件SMTP设置。抱歉,这是一个输入错误。关于邮件递送,你说得对。我不知道你是如何尝试从单独的机器发送电子邮件的。但我认为您需要将SMTP设置复制到另一台机器上。这台机器承载相同的Rails应用程序。所以我想它应该把它捡起来。但我对mailer上的
#to_s
方法更感兴趣。是否有文件证明它创建了完整的原始电子邮件,可以发送?它还会处理附件等事情吗?因为邮件与ActionMailer是分开的,所以它不共享ActionMailer的SMTP设置。默认情况下,它尝试连接到localhost:25。看见