2013-09-04 4 views
0

저는 Catalyst 프레임 워크에 대해 읽었으며 HTML 컨텐트가 포함 된 이메일을 보내려고합니다.Catalyst 및 Catalyst :: Plugin :: Email을 사용하여 이메일에 html을 보내십시오.

예 : here처럼 Catalyst :: Plugin :: Email을 사용하려고했습니다. 전자 메일은 보내지 만 모든 내용은 일반 텍스트로 표시됩니다.

sub send_email : Local { 
    my ($self, $c) = @_; 

    $c->email(
     header => [ 
     To  => '[email protected]', 
     Subject => 'A TT Email', 
     ], 
     body => $c->view('Web')->render($c, 'email.tt', { 
      additional_template_paths => [ $c->config->{root} . '/email_templates'], 
      email_tmpl_param1 => 'foo' 
     } 
    ), 
    ); 
    # Redirect or display a message 
} 

나는 또한 Catalyst::View::Email::Template을 읽었지만 설치하지 않을 것이다.

아이디어가 있으십니까?

답변

0

이제 Catalyst :: Plugin :: Email으로 HTML 이메일을 보낼 수 있습니다. 문서에서 :

"email()은 Email :: MIME :: Creator의 create()와 동일한 인수를 허용합니다."

이메일 : MIME :: 창조주로 보면, 만드는 방법의 구조는 다음과 같습니다

my $single = Email::MIME->create(
    header_str => [ ... ], 
    body_str => '...', 
    attributes => { ... }, 
); 

my $multi = Email::MIME->create(
    header_str => [ ... ], 
    parts  => [ ... ], 
    attributes => { ... }, 
); 

"뒤로 속성에 해시 키는 방법에 직접 대응 또는 이메일에서 메시지를 수정 :: MIME ::. 수정 자 : 허용 된 키는 content_type, charset, name, format, boundary, encoding, disposition 및 filename이며, 메시지 수정을 위해 "$ attr_set"에 매핑됩니다. "

sub send_email : Local { 
    my ($self, $c) = @_; 

    $c->email(
     header => [ 
     To  => '[email protected]', 
     Subject => 'A TT Email', 
     ], 
     body => $c->view('Web')->render($c, 'email.tt', { 
      additional_template_paths => [ $c->config->{root} . '/email_templates'], 
      email_tmpl_param1 => 'foo' 
     } 
    ), 
     attributes => { 
     content_type => 'text/html', 
     charset => 'utf-8' 
     }, 
    ); 

    # Redirect or display a message 
} 
:

는 노력 코드입니다