문제

이미지와 적절한 형식이 포함 된 Rails 응용 프로그램에서 이메일을 어떻게 작성하고 보내나요? Facebook에서 얻은 것과 좋아하는 것과 같습니다.

도움이 되었습니까?

해결책

ActionMailer를 사용하여 레일에서 일반 일반 텍스트 이메일을 보내는 방법을 알고 있다고 가정합니다. HTML 일하는 이메일은 이메일의 콘텐츠 유형을 설정해야합니다.

예를 들어, Notifer는 다음과 같습니다.

class MyMailer < ActionMailer::Base
  def signup_notification(recipient)
    recipients   recipient.email_address_with_name
    subject      "New account information"
    from         "system@example.com"
    body         :user => recipient
    content_type "text/html"
  end
end

참고 content_type "text/html" 선. 이것은 ActionMailer에게 콘텐츠 유형의 이메일을 보내라고 지시합니다. text/html 기본 대신 text/plain.

다음으로 메일러보기를 출력해야합니다 HTML. 예를 들어, 뷰 파일입니다 app/views/my_mailer/signup_notification.html.erb 다음과 같이 보일 수 있습니다.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css" media="screen">
      h3 { color: #f00; }
      ul { list-style: none; }
    </style>
</head>
<body>
  <h3>Your account signup details are below</h3>
  <ul>
    <li>Name: <%= @user.name %></li>
    <li>Login: <%= @user.login %></li>
    <li>E-mail: <%= @user.email_address %></li>
  </ul>
</body>
</html>

보시다시피 HTML 보기에는 a가 포함될 수 있습니다 <style> 기본 스타일을 정의하기위한 태그. 전부는 아닙니다 HTML 그리고 CSS 특히 모든 메일 클라이언트에서 지원되지만 텍스트 스타일에 대한 충분한 서식 제어가 있어야합니다.

첨부 된 이메일을 표시하려는 경우 이미지를 포함시키는 것이 약간 까다로워집니다. 단순히 외부 사이트에서 이메일을 포함하는 경우 <img /> 당신이 평소처럼 태그 HTML. 그러나 많은 메일 클라이언트는 사용자가 승인 할 때까지 이러한 이미지가 표시되는 것을 차단합니다. 첨부 된 이미지를 표시 해야하는 경우 Rails 플러그인 인라인 첨부 파일 볼만한 가치가있을 수 있습니다.

Rails Mailing Support에 대한 자세한 내용은 ActionMailer 문서 훌륭한 자원입니다

다른 팁

이미지의 경우 일반을 사용할 수 있습니다 image_tag 당신이 정의 한 후에 도우미 ActionMailer::Base.asset_host = 'http://www.your-domain.com'

PaplClip을 사용하여 이미지를 저장하므로이 경우 이미지를 사용하여 이미지를 추가 할 수 있습니다.

image_tag result.photo.url(:small)

읽다 CSS로 훌륭한 HTML 이메일을 만드는 방법 , 좋은 출발입니다. 모든 이메일은 HTML 3.0을 따라야합니다!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top