Ustawienie "Content-Transfer-Encoding" jest ustawione domyślnie na "7bit". Serwer pocztowy Postfix rozkłada nagłówek wiadomości e-mail o kilka tysięcy znaków, co oznacza, że jeśli masz długą wiadomość e-mail (np. Przy użyciu HTML), w efekcie masz spacje w środku tekstu lub linków. (Zobacz ten wątek, aby uzyskać więcej informacji: http://tech.groups.yahoo.com/group/postfix-users/message/273296)Jak zmienić ustawienia kodowania zawartości przesyłek pocztowych w Railsach?
Po dokumentacji Rails ActionMailer (http://api.rubyonrails.org/classes/ActionMailer/Base.html), dodanie następującego kodu do pliku mojej aplikacji powinno spowodować, że , ale to nie działa:
ActionMailer::Base.default 'Content-Transfer-Encoding' => 'quoted-printable'
nadal skończyć z domyślnie:
Mime-Version: 1.0
Content-Type: multipart/alternative;
boundary="--==_mimepart_50166adf1e043_1b9810829142282d";
charset=UTF-8
Content-Transfer-Encoding: 7bit
Mój email wyglądać tak:
def new_registered_user(user_id)
@user = User.find(user_id)
set_locale @user.locale
mail(
:subject => i18n_subject,
:to => @user.email_with_name
) do |format|
format.text { render :layout => 'text_email' }
format.html
end
end
Każdy pomysł, co jeszcze powinienem zmienić?
fyi, długość linii e-mail jest ograniczona do 998 znaków. zobacz http://stackoverflow.com/questions/1592291/what-is-the-email-subject-length-limit –
bardzo dziękuję, więc nie ma innej opcji niż dodanie breakline (\ r \ n) dla długich e-maili –
Rzeczywiście. MUSI być CRLF co 998 znaków. Mimo to, w zależności od kodowania treści, możesz uniknąć umieszczania CRLF w samej treści. –