2011-05-09 4 views
2

새 레일 3 메일을 사용하여 이메일의 앞면에서 이름 부분을 어떻게 얻을 수 있습니까?레일 사용 3 메일

실제 이메일에서이 분야에서이 같은 : 내가 mail.from.first을 할 경우

<From: rogger rabbit <[email protected]>> 

내가 [email protected] 부분을 얻을 수 있지만, 어떻게, 즉 이름 비트를받을 수 있나요. 로거 토끼?

덕분에 많은 릭

답변

2

를 :

a = Address.new('Mikel Lindsaar (My email address) <[email protected]>') 
a.format  #=> 'Mikel Lindsaar <[email protected]> (My email address)' 
a.address  #=> '[email protected]' 
a.display_name #=> 'Mikel Lindsaar' 
a.local  #=> 'mikel' 
a.domain  #=> 'test.lindsaar.net' 
a.comments  #=> ['My email address'] 
a.to_s   #=> 'Mikel Lindsaar <[email protected]> (My email address)' 

mail [: from] .addrs.collect {| a | a.display_name} 모든 아침에 내 머리를 찢어 후

+0

대단히 감사합니다. – rick

0

당신은 decoded 방법을 시도 할 수 있습니다 : 보면 내가 이걸 발견 메일-2.2.17/lib 디렉토리/메일/요소/address.rb을

mail.from.first.decoded 
+0

tadman "[email protected]"에 대해'디코딩 '된 메소드가 정의되지 않았습니다. email.from.first.decoded 할 때 문자열이 ??? – rick

+0

나는 [Mail의 API 문서] (http://rdoc.info/github/mikel/mail)를 통해 그 모습을 바라보고 있었다. – tadman

0

, 내가 마지막으로이 작업을 얻었다 :

"메시지"를 통해 반복 할 수있는 메일 객체가
message[:from].display_names.first 

.

주의 : 보낸 사람에게 표시 이름이 없으면이 값은 0입니다.