2

Rails、ActionMailer、1.9 Ruby、Rails3.0経由でメールを送信しています

すべてが順調です。件名と本文にアクセント付きの文字が含まれているメールを問題なく送信しています。私の文字セットのデフォルトはUTF-8です。

しかし、アクセント記号付きの文字を含むアドレスに電子メールを送信しようとすると、惨めに失敗します。最初に、電子メールアドレスが無効であり、完全に修飾する必要があるというエラーが発生しました。

これを回避するには、メールアドレスを'""'の形式で指定する必要がありました。

現在送信中ですが、メールクライアントのアドレスの文字は=?UTF-8?Q?....と表示されます。これは正しいです。Railsは私のUTF8アドレスをヘッダーに正しくエンコードしています。

しかし

私のメールクライアントはディスプレイでこれを認識していないため、画面上ですべてが文字化けします。実際のテキストのように文字化け=?UTF-8?Q?....がクライアントの[宛先]フィールドに表示されます。

エンコーディングはUTF8などです。文字セットはUTF8で、TransferEncodingはクォータブル印刷可能です。

私は何が欠けていますか?頭を抱えている!

また、テストとして、Macメールクライアントからアクセント記号付きのアドレスにメールを送信しました。これは私のクライアントでは問題なくレンダリングされますが、見出しはまったく異なります...文字セットはisoであり、転送エンコーディングはbase64です....したがって、メールを別の方法でエンコードするには、actionmailerを変更する必要があると思いますか?つまり、isoおよびbase64エンコーディングを使用して、うまく再生できるようにしますか?

私はこれを試しましたが、役に立ちませんでした。私はそれを間違っているのか、それともここでのポイントを完全に見逃しているのですか?これに関するさまざまなフォーラムやサイトを読んで、ヘッダーフィールドを特定の方法でエンコードする必要がありますが、そのエンコードが何であるか、より具体的にはRailsでこれをどのように行うことができるかを正確に伝える必要がある答えを見つけることができません?

助けてください!:-)

4

2 に答える 2

1

最終的にこれを解決しました。電子メールのローカル部分を引用符で囲み、ドメイン部分を引用符で囲まないままにしておくと、うまくいきます。引用符で囲まない場合、メーラーは完全な電子メールアドレスをエンコードしているようです。したがって、エンコードはサーバーに渡されます。

例:somébody@here.comは機能しません

ここで、「somébody」@here.comが機能します

正常にルーティングし、すべてのクライアントで正常に表示されます。

于 2012-07-18T13:00:23.273 に答える
0

現在、すべてのメールサーバーがUTF-8電子メールアドレス(別名SMTPUTF8 )をサポートしているわけではありません。それらの多くは、(ヘッダーのコンテンツの奇形でさえ)クレイジーなことをします。エンコーディングヘッダーがメールサーバーを完全に通過し、取り外されていないことを確認できますか?

MTAはUTF-8アドレスをサポートするためにRFC6530をサポートする必要があるため、アプリケーションの障害ではない可能性があります。

于 2012-07-11T10:39:48.143 に答える