我正在使用Email :: SendGrid :: V3 Perl库,我的目标是通过使用多个收件人的名字向他们发送一封电子邮件。但是我无法弄清楚如何使用他们的在线文档进行个性化设置:
https://metacpan.org/pod/Email::SendGrid::V3#$self-%3Eset_section($key,-$value);
我可以向两个不同的人发送一封电子邮件,但是我缺少有关如何进行身体替代的信息。
use Email::SendGrid::V3;
my $sg = Email::SendGrid::V3->new(api_key => 'ABCDE');
my $result = $sg->from('noreply@mydomain.com')
->subject('This is a subject line')
->add_envelope( to => [ {email => 'john@mydomain.com', name => 'John Smith' }] )
->set_section('-NAME-', 'John')
->add_content('text/html', 'Hello -NAME-, how are you?')
->send;
print $result->{success} ? "It worked" : "It failed: " . $result->{reason};
任何提示将不胜感激。
答案 0 :(得分:1)
这只是模板;您有一个模板,并且想要填写值。 Text::Template是此操作的直接实现,尽管由于您的结果是HTML,所以您希望使用HTML感知的模板引擎,例如Text::Xslate或Mojo::Template,因此您不必记住HTML-转义每个值。还有Template::Toolkit是整体上最常用和最可配置的模板系统。下面是使用Mojo :: Template的示例。
use strict;
use warnings;
use Mojo::Template;
my $mt = Mojo::Template->new(vars => 1, auto_escape => 1);
my $template = 'Hello <%= $name %>, how are you?';
my $rendered = $mt->render($template, {name => 'John'});
答案 1 :(得分:1)
我有机会从开发人员那里获得了快速反馈,解决方案如下:
my $result = $sg->from('noreply@mydomain.com')
->subject('This is a subject line')
->add_content('text/html', 'Hello -NAME-, how are you?')
->add_envelope( to => [ {email => 'fred@mydomain.com', name => 'Fred Smith' }], substitutions => { '-NAME-' => 'Fred' } )
->add_envelope( to => [ {email => 'john@mydomain.com', name => 'John Smith' }], substitutions => { '-NAME-' => 'John' } )
->send;