2016-12-06 7 views
0

첨부 된 이미지가있는 메일을 보내고 html로이 이미지를 삽입하고 싶습니다. 태그의 소스로 무엇을 써야하나요? content_type과 같은 헤더 부분이 누락 되었습니까?Ruby에 이미지가 포함 된 메일 보내기

실제 테스트를하고있을 때 Gmail 계정으로 메일을 보냅니다. 이름이 "unnamed"인 첨부 파일이 있다는 것을 알 수 있으며 다운로드 할 때도 이미지를 표시 할 수 없습니다.

보석 : 포니

require 'pony' 
Pony.override_options = { :via => :test } 
Pony.mail(
    :to => '[email protected]', 
    :from => '[email protected]', 
    :subject => 'test123', 
    :body => "<h1><strong>Dear X, check the newsletter ,<br></strong></h1> <img src='attached image' />", 
    :attachments => {"happy_image.jpg" => File.read("happy_image.jpg")} 
) 
puts Mail::TestMailer.deliveries 

출력 :

Date: Tue, 06 Dec 2016 17:23:05 +0300 

From: [email protected] 

To: [email protected] 

Message-ID: <[email protected]> 

Subject: test123 

Mime-Version: 1.0 

Content-Type: multipart/mixed; 

boundary="--==_mimepart_5846c9caf15a_5983c9fd8989e5"; 

charset=UTF-8 

Content-Transfer-Encoding: 7bit 





----==_mimepart_5846c9caf15a_5983c9fd8989e5 

Content-Type: text/plain; 

charset=UTF-8 

Content-Transfer-Encoding: 7bit 



<h1><strong>Dear X, check the newsletter ,<br></strong></h1> <img src='' /> 

----==_mimepart_5846c9caf15a_5983c9fd8989e5 

Content-Type: image/jpeg; 

filename=happy_image.jpg 

Content-Transfer-Encoding: base64 

Content-Disposition: attachment; 

filename=happy_image.jpg 

Content-ID: <[email protected]> 



/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQE 

BQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/ 

2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU 

FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAHiAuMDASIAAhEBAxEB/8QA 

HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUF 

BAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK 

FhcYGQ== 



----==_mimepart_5846c9caf15a_5983c9fd8989e5-- 

답변

0

당신은 이미지를 인코딩 BASE64로 할 수 및 img 태그의 src 같은 결과 문자열을 사용해야합니다. 예를 들어

:

또한
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWQAAAD8CAYAAAB..."/> 

콘텐츠 유형이 text/html 대신 text/plain로 설정되어 있는지 확인하십시오. 메일을 보면, 이미지가 렌더링되지 않고 텍스트로 렌더링되는 이유가 후자로 설정되어있는 것 같습니다.

:headers => { 'Content-Type' => 'text/html' }

+0

안녕, 나는 이미이 방법을 시도했다, 그러나 나는 메일을 표시 할 때, 그것은 "" –

+0

아 등의 img 태그 순수 문자열을 보여줍니다 text/html 콘텐츠 형식을 사용하도록 인수에 다음을 추가합니다. 헤더의 내용 유형을 HTML로 설정해야합니다. 그렇지 않으면 텍스트 형식으로 처리됩니다. 원래의 질문을 보면 콘텐츠 유형이 현재'text/plain'으로 설정되어있는 것으로 보입니다. 이 질문을 추가했습니다. –

+0

당신이 말했듯이 헤더 옵션을 추가했지만 그 결과는 나에게 동일합니다. 이 순수 문자열처럼 '

관련 문제