- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有个类似的问题。我正在使用sendmail选项,并继续出现错误
“发送邮件需要使用SMTP发件人地址。设置邮件
smtp_envelope_from,return_path,发件人或地址。”
我已经从ruby控制台测试了Mail gem,它可以完美工作。 AppConfig报告该传递方法是sendmail,还报告sender_address
与app/config/diaspora.yaml
文件中输入的完全相同。 Mail.delivery_method
还返回sendmail。当我在@smtp_envelope_from = 'myemail@example.com'
中设置gems/mail-2.5.4/lib/mail/message.rb
时,会收到类似但不同的错误消息。
“发送邮件需要SMTP To地址。设置邮件
smtp_envelope_to,收件人,抄送或密件抄送地址。”
此错误出现在lib/mail/check_delivery_params.rb:9:in check_delivery_params'
中,因此我尝试在@smtp_envelope_to = 'myrecipient@example.com'
中设置message.rb
,只是为了进行测试,因为我知道这些设置应该应用于其他地方(该线程似乎是我唯一可以解决的问题)设置@smtp_envelope_to
后收到的错误是
“ myrecipient@example.com”的未定义方法映射:字符串
我最初担心delivery_method
设置不正确,但是跟踪显示,在调用check_delivery_params之前,我输入了lib/mail/network/delivery_methods/sendmail.rb:50:in
deliver!”所以事实并非如此。这是一周左右前克隆的标准安装。使用RVM and ruby-1.9.3-p484
。在生产模式和开发模式下,我遇到相同的错误。我正在使用诸如grep -r
方法签名之类的策略来帮助我查找要设置和初始化它们的文件和属性。我无法理解如何配置设置AppConfig
中的值
以及Devise::Mailer
的工作原理。
在这所有方面,我最大的疑问是我在diaspora应用程序中调用了设置smtp_envelope_from
和smtp_envelope_to
的方法,在diaspora中设置这些方法的标准方法是什么,以及如何确认它们已被设置。我正在尝试为password_instructions
获取成功的邮件。看来这是要处理的。
请帮忙,因为我一直在寻找解决方案已有一段时间。我还没有准备放弃sendmail
,因为这不一定是问题。同样在我正在使用的版本中,config/initializers/devise.rb
没有前面提到的属性,它们似乎是以某种方式自动设置的,但是,这对于将数据与逻辑分离的好处实际上似乎有点烦人,但实际上有点烦人。
进一步的研究
我发出以下命令来查看所设置的属性的位置,并且该属性不会返回单个文件,这些文件将它们设置为我希望它们的值,它们被初始化了。
〜$ grep -r smtp_envelope_from
.irb-history:Mail.smtp_envelope_from
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / check_delivery_params.rb:如果mail.smtp_envelope_from.blank?
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / check_delivery_params.rb:raise ArgumentError.new('发送邮件需要使用SMTP发件人地址。邮件smtp_envelope_from,return_path,发件人或地址。”)
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / check_delivery_params.rb:[mail.smtp_envelope_from,mail.smtp_envelope_to,邮件]
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:@smtp_envelope_from = nil
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_from ='Mikel'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_from#=>'mikel@test.lindsaar.net'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_from'Mikel'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_from#=>'mikel@test.lindsaar.net'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:def smtp_envelope_from(val = nil)
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:self.smtp_envelope_from = val
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:@smtp_envelope_from || return_path ||发件人|| from_addrs.first
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_from ='Mikel'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_from#=>'mikel@test.lindsaar.net'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:def smtp_envelope_from =(val)
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:@smtp_envelope_from = val
我运行另一个命令以查看可以找到的内容
〜$ grep -r smtp_envelope_to
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / check_delivery_params.rb:如果mail.smtp_envelope_to.blank?
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / check_delivery_params.rb:raise ArgumentError.new(“发送邮件需要使用SMTP To地址。邮件smtp_envelope_to,收件人,抄送或密件抄送地址。”)
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / check_delivery_params.rb:[mail.smtp_envelope_from,mail.smtp_envelope_to,邮件]
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:@smtp_envelope_to = nil
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_to ='Mikel'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_to#=>'mikel@test.lindsaar.net'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_to ['Mikel','Lindsaar']
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_to#=> ['mikel@test.lindsaar.net',' lindsaar@test.lindsaar.net']
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:def smtp_envelope_to(val = nil)
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:self.smtp_envelope_to = val
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:@smtp_envelope_to ||目的地
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_to ='Mikel'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_to#=>'mikel@test.lindsaar.net'
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_to = ['Mikel','Lindsaar']
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:#mail.smtp_envelope_to#=> ['mikel@test.lindsaar.net',' lindsaar@test.lindsaar.net']
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:def smtp_envelope_to =(val)
.rvm / gems / ruby-1.9.3-p484 @ diaspora / gems / mail-2.5.4 / lib / mail / message.rb:@smtp_envelope_to =
grep:aquota.user:权限被拒绝
diaspora / log / development.log:ArgumentError(发送消息需要SMTP To地址。将消息smtp_envelope_to设置为to,cc或bcc地址。):
diaspora / log / development.log:ArgumentError(发送消息需要SMTP To地址。将消息smtp_envelope_to设置为to,cc或bcc地址。):
grep:丢失+找到:权限被拒绝
如您所见,这些设置已在mail/lib/mail/message.rb
中初始化,但在其他任何地方均未获得适当的值。方法是否可能具有别名或以某种方式设置为使用该技术找不到它们? actionmailer
中的mail
和ruby-1.9.3-p848
是否有散居者不支持的更新要求或更改? (安装Wiki专门说要使用此版本。)config/diaspora.yaml
允许我指定默认的from地址,但是如果我没有记错的话,应该在邮件块中设置to地址。
对此仍然不知所措,请帮助
针对错误的进一步测试
“ myrecipient@example.com”的未定义方法映射:字符串lib/mail/check_delivery_params.rb:9:in check_delivery_params'
期望使用数组,所以我在gems/mail-2.5.4/lib/mail/message.rb
中将@smptp_envelope_to设置为['myreciepient@example.com'],当请求password_reset_instructions时,电子邮件成功了,但是电子邮件中的内容为空。现在,当我得到最后提到的文件时,考虑在~/diaspora/app/mailers/diaspora_devise_mailer.rb
或~/.rvm/gems/ruby-1.9.3-p484@diaspora/gems/devise-3.0.2/app/mailers/devise/mailer.rb
某处出现问题
> class Devise::Mailer < Devise.parent_mailer.constantize
>> include Devise::Mailers::Helpers
>>
>> def confirmation_instructions(record, opts={})
>>> devise_mail(record, :confirmation_instructions, opts)
>> end
>> def reset_password_instructions(record, opts={})
>>> devise_mail(record, :reset_password_instructions, opts)
>> end
>> def unlock_instructions(record, opts={})
>>> devise_mail(record, :unlock_instructions, opts)
>> end
> end
devise/app
中的控制器进行工作,我认为问题出在设计上。围绕ruby邮件上的howto进行哈希处理应该可以帮助我找到此问题。必须在某处创建一个消息块,但是它的位置并不明显。如果有人可以将我指向正确的位置来创建消息块,那么我是否会进行一次小型胜利舞蹈。
> # This is a hack to overide a route created by devise.
> # I couldn't find anything in devise to skip that route, see Bug #961
> match 'users/edit' => redirect('/user/edit')
>
> devise_for :users, :controllers => {:registrations => "registrations",
> :password => "devise/passwords",
> :sessions => "sessions"}
最佳答案
通过克隆侨民的更新版本来解决此问题。问题似乎是Devise :: Mailer的较新版本打破了散居者的境地。
关于devise - Devise::Mailer的设置-散居者smtp_envelope_from和smtp_envelope_to sendmail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20958381/
在 Spree 3.0 中“邮件方法设置”默认不可用。 轨道版本 4.2.0 在管理面板中使用 “gem 'spree_mail_settings', github: 'spree-contrib/s
我是一名优秀的程序员,十分优秀!