복붙노트

[RUBY-ON-RAILS] 레일을 사용하여 이메일에 삽입 이미지에 대한 권리 방법은 무엇입니까?

RUBY-ON-RAILS

레일을 사용하여 이메일에 삽입 이미지에 대한 권리 방법은 무엇입니까?

에이 레일을 사용하여 이메일에 이미지를 포함 올바른 방법은 무엇입니까?

해결법

  1. ==============================

    1.나는 정의 도우미 접근 옥사나에서 답을 결합하여 아주 능숙하게하려면 다음을 얻었다.

    나는 정의 도우미 접근 옥사나에서 답을 결합하여 아주 능숙하게하려면 다음을 얻었다.

    응용 프로그램 / 헬퍼 / email_helper.rb

    module EmailHelper
      def email_image_tag(image, **options)
        attachments[image] = File.read(Rails.root.join("app/assets/images/#{image}"))
        image_tag attachments[image].url, **options
      end
    end
    

    응용 프로그램 / 우편물 / base_mailer.rb

    class BaseMailer < ActionMailer::Base
      add_template_helper(EmailHelper)
    end
    

    응용 프로그램 / 우편물 / my_mailer.rb

    class MyMailer < BaseMailer
    
      def send_my_mail(email)  
        mail to: email, subject: "My Subject"
      end
    end
    

    그리고 예를 들어 내가 사용하는 것이 내 이메일 레이아웃 파일에 회사 로고를 부착 할 위치

    응용 프로그램은 / / 레이아웃 / email.html.erb 전망

    태그가 더 확장하게 ** 옵션을 참고하지만 것 만 루비> = 2 일. 루비 <2에서이 작업을하려면 키워드 옵션을 처리하는 기존의 방법을 사용해야합니다.

  2. ==============================

    2.5 레일

    5 레일

    메일 방법은 이미지에 인라인 첨부 파일을 가리키는 추가 :

    class ConfirmationMailer < ActionMailer::Base
      def confirmation_email
          attachments.inline["logo.png"] = File.read("#{Rails.root}/app/assets/images/logo.png")
          mail(to: email, subject: 'test subject')
      end
    end
    

    그런 다음 메일에 첨부 된 URL과 IMAGE_TAG을 볼 HTML :

    <%= image_tag(attachments['logo.png'].url) %>
    
  3. ==============================

    3.옥사나에 추가 및 tdubs '답변

    옥사나에 추가 및 tdubs '답변

    모듈 tdubs는 바탕 화면에 작품을 썼다지만, 모바일 Gmail은 클라이언트에 대한 이미지가 첨부 파일로 나타났다. 이 문제를 해결하려면이 작업을 수행

    응용 프로그램 / 헬퍼 / email_helper.rb

    module EmailHelper
        def email_image_tag(image, **options)
            attachments[image] = {
                :data => File.read(Rails.root.join("app/assets/images/emails/#{image}")),
                :mime_type => "image/png",
                :encoding => "base64"
            }
            image_tag attachments[image].url, **options
        end
    end
    

    나머지, tdubs의 답변을 따르십시오.

  4. ==============================

    4.많은 연구 후에 나는 이메일에 포함 된 이미지에 매우 깨끗한 방법을 발견했다. 그냥 production.rb 및 development.rb에 다음 줄을 추가

    많은 연구 후에 나는 이메일에 포함 된 이미지에 매우 깨끗한 방법을 발견했다. 그냥 production.rb 및 development.rb에 다음 줄을 추가

    config.action_mailer.asset_host = 'YOUR HOST URL'
    

    보기에서 다음 코드를 사용하여 이미지를 포함.

    <%= image_tag('My Web Site Logo.png') %>
    

    액션 메일러의 사용의 기본 자세한 내용은 ActionMailer를 참조하십시오 :: 자료를.

  5. ==============================

    5.여기에서 붙여 복사

    여기에서 붙여 복사

    http://api.rubyonrails.org/classes/ActionMailer/Base.html#class-ActionMailer::Base-label-Inline+Attachments

    인라인 첨부 파일

    또한 파일을 다른 HTML 인라인 표시되도록 지정할 수 있습니다. 당신은 회사 로고 또는 사진을 표시하려는 경우에 유용합니다.

        class Notifier < ApplicationMailer
          def welcome(recipient)
           attachments.inline['photo.png'] = File.read('path/to/photo.png')
           mail(to: recipient, subject: "Here is what we look like")
         end
       end
    

    그리고 당신이 welcome.html.erb 파일을 생성,보기에서 이미지를 참조하고 이미지의 상대 콘텐츠 ID 경로를 얻기 위해 표시 한 다음 첨부 파일에 URL을 호출 할 첨부 파일을 전달 IMAGE_TAG로 전화를 걸 수 있습니다 출처:

      <h1>Please Don't Cringe</h1>
    
      <%= image_tag attachments['photo.png'].url -%>
    

    우리는 액션보기의 IMAGE_TAG 방법을 사용하는, 당신은 당신이 원하는 다른 옵션에 전달할 수 있습니다 :

     <h1>Please Don't Cringe</h1>
    
     <%= image_tag attachments['photo.png'].url, alt: 'Our Photo', class: 'photo' -%>
    
  6. ==============================

    6.구글 API를 통해받은 편지함 나는 많은 레일에 대한 모르겠지만, 나는 사용자에이를 삽입 한 후 이메일을 만들 C #에서 프로젝트에 참여하고했습니다. 이메일을 작성하려면, 나는 처음부터 이메일 문자열을 생성했다. 당신은 이메일을 여러 부분을 사용하는 경우, 다음 이미지 바이트는 base64 인코딩을 사용하여 다중 섹션에 포함됩니다.

    구글 API를 통해받은 편지함 나는 많은 레일에 대한 모르겠지만, 나는 사용자에이를 삽입 한 후 이메일을 만들 C #에서 프로젝트에 참여하고했습니다. 이메일을 작성하려면, 나는 처음부터 이메일 문자열을 생성했다. 당신은 이메일을 여러 부분을 사용하는 경우, 다음 이미지 바이트는 base64 인코딩을 사용하여 다중 섹션에 포함됩니다.

    당신은 그들이 당신을 위해 이러한 작업을 지원할 수 있는지 확인하기 위해 TMail 및 RubyMail 패키지를 체크 아웃 할 수 있습니다.

  7. from https://stackoverflow.com/questions/4918414/what-is-the-right-way-to-embed-image-into-email-using-rails by cc-by-sa and MIT license