Send email: Difference between revisions
Content added Content deleted
m (→{{header|Python}}: Sub-headers) |
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Add code to actually (theoretically) send the email) |
||
Line 1,249: | Line 1,249: | ||
=={{header|Perl 6}}== |
=={{header|Perl 6}}== |
||
<lang perl6> |
<lang perl6>use Email::Simple; |
||
use Email::Simple; |
|||
my $ |
my $to = 'mail@example.com'; |
||
my $from = 'me@example.com'; |
|||
say $eml.body; |
|||
my $subject = 'test'; |
|||
my $body = 'This is a test.'; |
|||
my $ |
my $email = Email::Simple.create( |
||
:header[['To', $to], ['From', $from], ['Subject', $subject]], |
|||
⚫ | |||
:body($body) |
|||
⚫ | |||
); |
|||
⚫ | |||
⚫ | |||
say ~$email; |
|||
# Note that the following will fail without an actual smtp server that |
|||
# will accept anonymous emails on port 25 (Not very common anymore). |
|||
# Most public email servers now require authentication and encryption. |
|||
my $smtp-server = 'smtp.example.com'; |
|||
my $smtp-port = 25; |
|||
await IO::Socket::Async.connect($smtp-server, $smtp-port).then( |
|||
-> $smtp { |
|||
if $smtp.status { |
|||
given $smtp.result { |
|||
react { |
|||
whenever .Supply() -> $response { |
|||
if $response ~~ /^220/ { |
|||
.print( join "\r\n", |
|||
⚫ | |||
"MAIL FROM:<{$email.from}>", |
|||
"RCPT TO:<{$email.to}>", |
|||
⚫ | |||
⚫ | |||
) |
|||
} |
|||
elsif $response ~~ /^250/ { |
|||
.print("QUIT\r\n"); |
|||
done |
|||
} |
|||
else { |
|||
say "Send email failed with: $response"; |
|||
done |
|||
} |
|||
} |
|||
.close |
|||
} |
|||
} |
|||
} |
|||
} |
|||
⚫ | |||
=={{header|PHP}}== |
=={{header|PHP}}== |