Perl

SendGrid Perlライブラリの利用を推奨します。ライブラリのドキュメントについてはGithubを参照してください。

SendGrid Perlライブラリの利用

1
2
3
4
5
6
7
8
9
10
11
12
13
# using SendGrid's Perl Library
# https://github.com/sendgrid/sendgrid-perl
use Mail::SendGrid;
use Mail::SendGrid::Transport::REST;

my $sendgrid = Mail::SendGrid->new(
  from => "test@sendgrid.com",
  to => "example@example.com",
  subject => "Sending with SendGrid is Fun",
  html => "and easy to do anywhere, even with Perl"
);

Mail::SendGrid::Transport::REST->new( username => $api_user, api_key => $api_key );

SendGrid-perlを利用しない方法

SendGrid Perlライブラリを使用しない場合、PerlのSMTPライブラリを利用することができます。

以下のコードはMIMEメールメッセージを構築してSMTPAPIプロトコルの全てをデモします。この例を使うために、以下のPerlモジュールがインストールされてある必要があります:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/perl

use strict;
use MIME::Entity;
use Net::SMTP;

# from is your email address
# to is who you are sending your email to
# subject will be the subject line of your email
my $from = 'you@yourdomain.com';
my $to = 'example@example.com';
my $subject = 'Example Perl Email';

# Create the MIME message that will be sent. Check out MIME::Entity on CPAN for more details
my $mime = MIME::Entity->build(Type  => 'multipart/alternative',
                            Encoding => '-SUGGEST',
                            From => $from,
                            To => $to,
                            Subject => $subject
                            );
# Create the body of the message (a plain-text and an HTML version).
# text is your plain-text email
# html is your html version of the email
# if the receiver is able to view html emails then only the html
# email will be displayed
my $text = "Hi!\nHow are you?\n";
my $html = <<EOM;
<html>
  <head></head>
  <body>
    <p>Hi!<br>
       How are you?<br>
    </p>
  </body>
</html>
EOM

# attach the body of the email
$mime->attach(Type => 'text/plain',
            Encoding =>'-SUGGEST',
            Data => $text);

$mime->attach(Type => 'text/html',
            Encoding =>'-SUGGEST',
            Data => $html);

# attach a file
my $my_file_txt = 'example.txt';

$mime->attach ( Path      => $my_file_txt,
                   Type      => 'text/txt',
                   Encoding  => 'base64'
) or die "Error adding !\n";

# Login credentials
my $username = 'apikey';
my $api_key = "your_api_key";

# Open a connection to the SendGrid mail server
my $smtp = Net::SMTP->new('smtp.sendgrid.net',
                        Port=> 587,
                        Timeout => 20,
                        Hello => "yourdomain.com");

# Authenticate
$smtp->auth($username, $api_key);

# Send the rest of the SMTP stuff to the server
$smtp->mail($from);
$smtp->to($to);
$smtp->data($mime->stringify);
$smtp->quit();