2014-06-17 1 views
4

죄송합니다. 좋은 기사가 누락되었지만 루비를 사용하는 인라인 이미지를 사용하는 방법에 대한 좋은 예를 찾을 수 없습니다 (RoR을 사용하지 않습니다) 내가 찾을 수있는 가장 좋은 예는 here이지만, .cid 방법의 출처는 이해할 수 없습니다.ruby ​​메일을 사용하는 인라인 이미지

여기에 .cid 방법이 사용되는 상기 게시물의 발췌 부분이 있습니다.

html_part do 
    content_type 'text/html; charset=UTF-8' 
    body "<img width=597 height=162 id='Banner0' src='cid:#{pic.cid}'>" 
end 

나는 메일 보석이 작동해야하며 첨부 파일로 이미지를 보낼 수 있지만 첨부 파일을 열 필요없이, 이메일 안에 표시하도록해야합니다.

답변

6

메일 보석은 꽤 잘 유지되어 있으므로 documentation을 조사하는 것이 좋습니다. 귀하의 제공 잘린는 중요한 부분이 골대를 벗어났습니다 : pic의 정의 :

이 정보를
pic = attachments['banner.png'] 

, 쉽게 attachments에 문서를 찾을 수 있습니다,이 비트를 얻을 것입니다 :

또한 검색 할 수 있습니다 특정 첨부 파일 :

# By Filename 
mail.attachments['filename.jpg'] #=> Mail::Part object or nil 

Mail::Part에 문서에서, 당신은 마에합니다 암탉은 cid 방법의 정의를 찾을 수 :

def cid 
    add_content_id unless has_content_id? 
    uri_escape(unbracket(content_id)) 
end 

은 (슬프게도,이 방법은 문서화되지 않습니다,하지만 "CID"는 "콘텐츠 ID"의 약자 있음을 추론하는 것은 쉽다).

마지막으로 RFC2557은 전자 메일 내의 캡슐화 된 문서 (예 : 이미지)를 식별하고 참조하기 위해 CID URI의 사용을 정의합니다. 이것은

body "<img ... src='cid:...'>" 

에서 유래합니다.

관련 문제