1Catalyst::Plugin::EmailU(s3e)r Contributed Perl DocumentaCtaitoanlyst::Plugin::Email(3)
2
3
4
6 Catalyst::Plugin::Email - (DEPRECATED) Send emails with Catalyst
7
9 # please use Email::MIME::Kit or Catalyst::View::Email::Template instead
10
11 use Catalyst 'Email';
12
13 __PACKAGE__->config->{email} = [qw/SMTP smtp.oook.de/];
14
15 $c->email(
16 header => [
17 From => 'sri@oook.de',
18 To => 'sri@cpan.org',
19 Subject => 'Hello!'
20 ],
21 body => 'Hello sri'
22 );
23
25 Send emails with Catalyst and Email::Send and Email::MIME::Creator.
26
28 "config" accepts the same options as Email::Send.
29
30 To send using the system's "sendmail" program, set "config" like so:
31
32 __PACKAGE__->config->{email} = ['Sendmail'];
33
34 To send using authenticated SMTP:
35
36 __PACKAGE__->config->{email} = [
37 'SMTP',
38 'smtp.myhost.com',
39 username => $USERNAME,
40 password => $PASSWORD,
41 ];
42
43 For different methods of sending emails, and appropriate "config"
44 options, see Email::Send::NNTP, Email::Send::Qmail, Email::Send::SMTP
45 and Email::Send::Sendmail.
46
48 email
49 email() accepts the same arguments as Email::MIME::Creator's create().
50
51 $c->email(
52 header => [
53 To => 'me@localhost',
54 Subject => 'A TT Email',
55 ],
56 body => $c->subreq( '/render_email' ),
57 );
58
59 To send a multipart message, include a "parts" argument containing an
60 arrayref of Email::MIME objects.
61
62 my @parts = (
63 Email::MIME->create(
64 attributes => {
65 content_type => 'application/pdf',
66 encoding => 'quoted-printable',
67 name => 'report.pdf',
68 },
69 body => $FILE_DATA,
70 ),
71 Email::MIME->create(
72 attributes => {
73 content_type => 'text/plain',
74 disposition => 'attachment',
75 charset => 'US-ASCII',
76 },
77 body => $c->subreq( '/render_email' ),
78 ),
79 );
80
81 $c->email(
82 header => [
83 To => 'me@localhost',
84 Subject => 'A TT Email',
85 ],
86 parts => \@parts,
87 );
88
90 A common practice is to handle emails using the same template language
91 used for HTML pages. If your view supports the 'render' method (Like
92 the TT view does), you just set the body like this:
93 $c->email(
94 header => [
95 To => 'me@localhost',
96 Subject => 'A TT Email',
97 ],
98 body => $c->view('TT')->render($c,'mytemplate.tt'),
99 }
100
101 If your view doesn't support render, you can just forward to it, then
102 reset the body like this:
103
104 sub send_email : Local {
105 my ( $self, $c ) = @_;
106 {
107 local $c->stash->{names} = [ qw/andyg sri mst/ ],
108 local $c->stash->{template}= 'mytemplate.tt';
109 $c->forward($c->view('MyView'));
110 $c->email(
111 header => [
112 To => 'me@localhost',
113 Subject => 'A TT Email',
114 ],
115 body => $c->res->body,
116 );
117 $c->res->body(undef);
118 }
119 }
120
121 And the template:
122
123 [%- FOREACH name IN names -%]
124 Hi, [% name %]!
125 [%- END -%]
126
127 --
128 Regards,
129 Us
130
131 Output:
132
133 Hi, andyg!
134 Hi, sri!
135 Hi, mst!
136
137 --
138 Regards,
139 Us
140
142 Catalyst, Catalyst::Plugin::SubRequest, Email::Send,
143 Email::MIME::Creator
144
146 Sebastian Riedel, "sri@cpan.org" Andy Grundman Carl Franks Marcus
147 Ramberg "mramberg@cpan.org"
148
150 This program is free software, you can redistribute it and/or modify it
151 under the same terms as Perl itself.
152
153
154
155perl v5.38.0 2023-07-20 Catalyst::Plugin::Email(3)