rails tutorial 11장당 빠질 것
2682 단어 Rails 튜토리얼루비Rails메일러
보내는 메일이 인코딩되어 링크를 밟지 않습니다.
가입시 name에 일본어 넣기
rails의 로그를 보면
http://localhost:3000/account_activations/AOSiSUDhma-B1bwZe3Wd_g/edit?email=3Dhogehoge%40gmail.com=0D
쿼리의 email에 수수께끼의 "3D"가 붙어 있다.
다른 곳에서 수수께끼의 0D와 3D,
로그에서이 링크를 밟으려고하면
User.find_by(email: '[email protected]')
를 탐사해 버려 root로 날아간다.
quoted-printable
Content-Transfer-Encoding: quoted-printable로 인해
= = 3D로 변환됩니다.
메일 본문에 일본어가 있으면 7bit 문자로 변환할 수 없기 때문에,
Content-Transfer-Encoding: quoted-printable이 등장한다.
Content-Transfer-Encoding: quoted-printabl
는 8bit 문자를 7bit 문자로 변환하여 인코딩합니다.
What does 3D mean in this html email?
quoted-printable
quoted-printabl이 디코딩되기 전에 url을 밟고 있기 때문에 올바른 링크로 날지 않습니다.
해결책
프로덕션 환경에서는 제대로 디코딩 된 링크를 밟기 때문에 해결책이라고는 말하지 않지만 일단
mail-iso-2022-jp 사용
group :development, :test do
・
・
・
gem 'mail-iso-2022-jp'
end
bundle install하고
application_mailer.rbclass ApplicationMailer < ActionMailer::Base
default from: '[email protected]',
charset: 'ISO-2022-JP'
layout 'mailer'
end
마지막으로
프로덕션 환경에서는 제대로 디코드 해 주므로, charset 지정은 바꾸지 않고 ok입니다.
참고
일본어 메일의 구조
매일 정진
Reference
이 문제에 관하여(rails tutorial 11장당 빠질 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mk_0409/items/7fb9db32666834438262
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
http://localhost:3000/account_activations/AOSiSUDhma-B1bwZe3Wd_g/edit?email=3Dhogehoge%40gmail.com=0D
User.find_by(email: '[email protected]')
group :development, :test do
・
・
・
gem 'mail-iso-2022-jp'
end
class ApplicationMailer < ActionMailer::Base
default from: '[email protected]',
charset: 'ISO-2022-JP'
layout 'mailer'
end
Reference
이 문제에 관하여(rails tutorial 11장당 빠질 것), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mk_0409/items/7fb9db32666834438262텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)