[英]sending mail using mail gem in rails 2.3.18
我在rails 2.3.18中使用郵件gem
class English < ActionMailer::Base
def test
subject "testing attachments"
recipients "test@test1.com"
from "test@gmail.com"
sent_on Time.now
content_type "multipart/mixed"
part :content_type => "multipart/alternative" do |alt|
alt.part "text/plain" do |plain|
plain.body "hello"
end
end
attachment :body => "test", :filename => '추적_.pdf'
end
end
當我發送電子郵件時,如果文件不是英文的話,文件名會被破壞,當它是非英文字符時,我的工作正常
郵件對象看起來像這樣:
#<Mail::Message:70182593794020, Multipart: true, Headers: <Date: Sat, 11 Jan 2014 11:30:51 +0530>, <From: test@gmail.com>, <To:
test@test1.com>, <Message-ID:
<52d0de1454a_b9c93fd4a18349dc100290@sumans-MacBook-Pro-2.local.mail>>,
<Subject: testing attachments>, <Mime-Version: 1.0>, <Content-Type:
multipart/mixed;
boundary=--==_mimepart_52d0de13eaf0a_b9c93fd4a18349dc9982>,
<Content-Transfer-Encoding: 7bit>>
mail.parts
[#<Mail::Message:70182595011140, Multipart: true, Headers: <Date: Sat,
11 Jan 2014 11:30:51 +0530>, <Message-ID:
<52d0de13f1aea_b9c93fd4a18349dc100029@sumans-MacBook-Pro-2.local.mail>>,
<Mime-Version: 1.0>, <Content-Type: multipart/alternative;
boundary=--==_mimepart_52d0de13e9676_b9c93fd4a18349dc997cb>,
<Content-Transfer-Encoding: 7bit>>, #<Mail::Message:70182595276760,
Multipart: true, Headers: <Date: Sat, 11 Jan 2014 11:30:51 +0530>,
<Message-ID:
<52d0de13f35ca_b9c93fd4a18349dc1001bc@sumans-MacBook-Pro-2.local.mail>>,
<Mime-Version: 1.0>, <Content-Type: multipart/mixed; name=추적_.pdf>,
<Content-Transfer-Encoding: base64>, <content-disposition: attachment;
filename=추적_.pdf>>]
這里的文件名是正確的,但是當我使用發送電子郵件時
smtp.sendmail(mail.encoded,sender,destinations)文件名已損壞
mail.encoded
> "Date: Sat, 11 Jan 2014 11:30:51 +0530\r\nFrom: test@gmail.com\r\nTo:
> test@test1.com\r\nMessage-ID:
> <52d0de1454a_b9c93fd4a18349dc100290@sumans-MacBook-Pro-2.local.mail>\r\nSubject:
> testing attachments\r\nMime-Version: 1.0\r\nContent-Type:
> multipart/mixed;\r\n
> boundary=\"--==_mimepart_52d0de13eaf0a_b9c93fd4a18349dc9982\"\r\nContent-Transfer-Encoding:
> 7bit\r\n\r\n\r\n----==_mimepart_52d0de13eaf0a_b9c93fd4a18349dc9982\r\nDate:
> Sat, 11 Jan 2014 11:30:51 +0530\r\nMessage-ID:
> <52d0de13f1aea_b9c93fd4a18349dc100029@sumans-MacBook-Pro-2.local.mail>\r\nMime-Version:
> 1.0\r\nContent-Type: multipart/alternative;\r\n boundary=\"--==_mimepart_52d0de13e9676_b9c93fd4a18349dc997cb\"\r\nContent-Transfer-Encoding:
> 7bit\r\n\r\n\r\n----==_mimepart_52d0de13e9676_b9c93fd4a18349dc997cb\r\nDate:
> Sat, 11 Jan 2014 11:30:51 +0530\r\nMessage-ID:
> <52d0de13f01cb_b9c93fd4a18349dc999bc@sumans-MacBook-Pro-2.local.mail>\r\nMime-Version:
> 1.0\r\nContent-Type: text/plain;\r\n charset=utf-8\r\nContent-Transfer-Encoding:
> quoted-printable\r\nContent-Disposition:
> inline\r\n\r\nhello=\r\n\r\n----==_mimepart_52d0de13e9676_b9c93fd4a18349dc997cb--\r\n\r\n----==_mimepart_52d0de13eaf0a_b9c93fd4a18349dc9982\r\nDate:
> Sat, 11 Jan 2014 11:30:51 +0530\r\nMessage-ID:
> <52d0de13f35ca_b9c93fd4a18349dc1001bc@sumans-MacBook-Pro-2.local.mail>\r\nMime-Version:
> 1.0\r\nContent-Type: multipart/mixed;\r\n charset=UTF-8\r\nContent-Transfer-Encoding:
> base64\r\ncontent-disposition: =?UTF-8?Q?attachment;?=\r\n
> =?UTF-8?Q?_filename=3D=E1=84=8E=E1=85=AE=E1=84=8C=E1=85=A5=E1=86=A8=5F.pdf?=\r\n\r\ndGVzdA==\r\n\r\n----==_mimepart_52d0de13eaf0a_b9c93fd4a18349dc9982--\r\n"
任何人都可以告訴我在郵件gem中的編碼方法出了什么問題我在郵件中收到的文件名為noname,英文字符正常工作
嘗試
class English < ActionMailer::Base
def test
subject "testing attachments"
recipients "test@test1.com"
from "test@gmail.com"
sent_on Time.now
content_type "multipart/mixed; charset=UTF-8"
part :content_type => "multipart/alternative; charset=UTF-8" do |alt|
alt.part "text/plain; charset=UTF-8" do |plain|
plain.body "hello"
end
end
attachment :body => "test", :filename => '추적_.pdf'
charset = "UTF-8"
content_transfer_encoding = '8bit'
end
end
你試過添加一個嗎?
# -*- encoding : utf-8 -*-
在English
課程定義文件的頂部?
---編輯---
# encoding: UTF-8
# coding: UTF-8
# -*- coding: UTF-8 -*-
是等價的。
嘗試添加
config.action_mailer.default_charset = "utf-8"
到你的
config/environments/development.rb
。
我已經找到了解決這個問題的方法我修改了補丁https://gist.github.com/tmiller/5808900並檢查了附件然后我使用了郵件gem默認方法它似乎在郵件gem中有一些bug將附件添加為部件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.