我正在尝试使用 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
User.rb:
35 def send_welcome_email
36 unless self.email.include?('@example.com')
37 UserMailer.welcome_email(self).deliver
end
end
Ruby 只接受单引号、双引号和反引号来引用字符串。它们中的每一个都有不同的含义。
由于您引用的是带有多字节正引号和反引号headers
哈希键,因此 ruby 会发出错误。我猜你复制粘贴了一些美化的源代码到某个网站上。
您可以使用单引号替换上面的来源:
headers['X-MC-Track'] = "opens, clicks"
headers['X-MC-GoogleAnalytics'] = "example.com"
headers['X-MC-Tags'] = "welcome"
请注意,通常建议使用符号 ( :like_this
) 作为哈希键,但对于上述情况,您需要使用单引号或双引号,因为它包含 -
作为键的一部分。