0

我在 Rails 4 上,我有一个邮件。这是按照文档中的教程创建的。

class UserMailer < ActionMailer::Base

@delivery_options = {
        user_name: 'user_name',
        password: 'password',
        address: 'smtp.sendgrid.net'
}

default from: "Auto <auto@mysite.me>"

def welcome_email (user, password)
    @user = user
    @password = password
    @url = "http://url.com"
    mail(to: @user.email, subject: "Welcome to my site", delivery_method_options: @delivery_options)
end

def project_invite_email (email, project)
    @project = project
    mail(to: email, subject: "#{@project.user.first_name} #{@project.user.last_name} requests a video from you", delivery_method_options: @delivery_options)
end

结尾

在解决一些可送达性问题的过程中,我发现一些电子邮件包含的标题与其他邮件不同。事实证明,SPF、DKIM 和对电子邮件副本的调整的组合能够解决可传递性问题(许多以前被垃圾邮件过滤器捕获),但我仍然想了解更多关于 Rails 如何创建标头的信息对于这些电子邮件。

例如,第二个在标题中包含这个:Content-Transfer-Encoding: 7bit但第一个有这个:Content-Transfer-Encoding: quoted-printable

如您所见,它们都使用完全相同的配置。唯一的区别是视图的内容(都有 HTML 和文本版本)。

rails 是否根据内容调整标题?

4

2 回答 2

3

好的。下次我会把它作为问题发布。谢谢。

在另一篇文章的帮助下,我现在已经解决了这个问题。

如何更改 Rails 中的邮件内容传输编码设置?

m = mail(...)
m.transport_encoding = "quoted-printable"
m.deliver
于 2014-09-28T03:06:39.093 回答
1

是的,rails 会自动调整Content-Transfer-Encoding。如果您的邮件视图中有非标准字符,标题可能会在7bitand之间随机切换quoted-printable(或者只是坚持quoted-printable)。

如果需要,您可以强制邮件程序使用默认编码(7 位)。

class Mailer < ActionMailer::Base
  default from: 'from@example.com',
          content_transfer_encoding: '7bit'

  ...
end

但是,它很可能是由无效字符引起的,一旦您将标题强制为7bit.

于 2013-12-12T09:59:16.770 回答