1

我正在尝试使用 SMTP 设置邮件程序并收到以下错误(来自控制台):

SyntaxError (/Users/nelsonkeating/Desktop/prelaunch/app/mailers/user_mailer.rb:6: invalid multibyte char (US-ASCII)
/Users/nelsonkeating/Desktop/prelaunch/app/mailers/user_mailer.rb:6: syntax error, unexpected $end, expecting ']'
    headers[‘X-MC-Track’] = "opens, clicks"
             ^):
  app/models/user.rb:37:in `send_welcome_email'

user_mailer.rb:

class UserMailer < ActionMailer::Base
  default :from => "remindeal@gmail.com"

  def welcome_email(user)
    mail(:to => user.email, :subject => "Invitation Request Received")
    headers[‘X-MC-Track’] = "opens, clicks"
    headers[‘X-MC-GoogleAnalytics’] = "example.com"
    headers[‘X-MC-Tags’] = "welcome"
  end
end

用户.rb:

35 def send_welcome_email
36    unless self.email.include?('@example.com')
37      UserMailer.welcome_email(self).deliver
    end
  end
4

1 回答 1

1

Ruby 只接受单引号、双引号和反引号来引用字符串。他们每个人都有不同的含义。

由于您headers使用多字节前向引号和反引号引用哈希键,因此 ruby​​ 会发出错误。我猜你在某个网站上复制粘贴了一些美化的源代码。

您可以使用单引号替换上面的源代码:

headers['X-MC-Track'] = "opens, clicks"
headers['X-MC-GoogleAnalytics'] = "example.com"
headers['X-MC-Tags'] = "welcome"

请注意,通常:like_this建议使用符号 ( ) 作为哈希键,但对于上述情况,您需要使用单引号或双引号,因为它包含-作为键的一部分。

于 2012-06-04T04:03:56.873 回答