gpt4 book ai didi

ruby-on-rails - 发送带附件的电子邮件

转载 作者:行者123 更新时间:2023-12-04 15:35:30 26 4
gpt4 key购买 nike

我有一个邮件如下:

class Payments::LateNoticesMailer < AsyncMailer
def notice(payment_id)
@payment = PaymentDecorator.find(payment_id)
@invoice = @payment.invoice
template = "payments/invoices/#{@payment.made_with_type.downcase}/show"

attachments["#{@payment.invoice_filename}.pdf"] =
WickedPdf.new.pdf_from_string( render_to_string( pdf: @payment.invoice_filename,
formats: [:pdf],
template: template,
layout: "layouts/pdf.html"))

mail to: @payment.payer_email,
from: '"RentingSmart" <no-reply@rentingsmart.com>',
cc: @payment.landlord_email,
subject: "*** Your rent payment of #{@payment.amount_due} is overdue ***"
end
end

我使用 SendGrid 发送。这是我的问题,如果我通过 Gmail 打开电子邮件,一切正常,电子邮件的文本在那里,并且附件已附加。但是,如果我使用 OSX 的 Mail.app 或在我的 iPhone 上打开它,我只会得到以下信息:

This is a multi-part message in MIME format...



有人有任何提示吗?我想我正确地遵循了 Rails 指南。

这是我打的电话 Payments::LateNoticesMailer.notice(payment.id).deliver

最佳答案

根据 ActionMailer::Base 的 api 文档, 如果使用多种模板类型,则全部呈现并且 mime-type 自动设置为 multipart/alternative。

如果添加附件,则该附件将放置在多部分/混合容器内。

第一个问题:你是否渲染其他类型,如文本和 html?我不建议只发送 pdf 部分的电子邮件。即使文本和 html 部分只是指示收件人打开附件,它们也应该在那里。理想情况下, text/html 部分会有更多信息。

其次,您是否尝试内联查看 pdf,而不是作为附件查看?

你能看看电子邮件的原始来源并用你看到的结构更新你的帖子吗?标题中将设置一个初始 mime 类型。它看起来像这样:

Mime-Version: 1.0
Content-Type: multipart/mixed;
boundary="--==_mimepart_50596418be947_c7223fec9d834d3874256";
charset=UTF-8
Content-Transfer-Encoding: 7bit

这表示要遵循的部分不是相同信息的替代版本,而是指示电子邮件客户端清楚地显示它们。

稍后在电子邮件中,您的文本和 html 部分应按以下方式进行处理:
----==_mimepart_50596418be947_c7223fec9d834d3874256
Date: Wed, 19 Sep 2012 06:20:12 +0000
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_50596418be468_c7223fec9d834d38741a5";
charset=UTF-8
Content-Transfer-Encoding: 7bit

最后,编码的 pdf 部分应该有一个 mime 标题,如:
----==_mimepart_50596418be947_c7223fec9d834d3874256
Date: Wed, 19 Sep 2012 06:20:12 +0000
Mime-Version: 1.0
Content-Type: application/pdf;
charset=UTF-8;
filename=terms.pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=terms.pdf

通过一个简单的测试电子邮件,我只是用文本、html 部分和一个大的 pdf 发送给自己,我可以在我的 iphone 上查看电子邮件。它显示了 html 部分和一个可以让我下载 pdf 的图标。

关于ruby-on-rails - 发送带附件的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12339314/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com