view release on metacpan or search on metacpan
lib/Mail/IMAPTalk.pm view on Meta::CPAN
The port number on the host to connect to. Defaults to 143 if not supplied
or 993 if not supplied and UseSSL is true.
=item B<UseSSL>
If true, use an IO::Socket::SSL connection. All other SSL_* arguments
are passed to the IO::Socket::SSL constructor.
=item B<Socket>
An existing socket to use as the connection to the IMAP server. If you
supply the B<Socket> option, you should not supply a B<Server> or B<Port>
option.
This is useful if you want to create an SSL socket connection using
IO::Socket::SSL and then pass in the connected socket to the new() call.
It's also useful in conjunction with the C<release_socket()> method
described below for reusing the same socket beyond the lifetime of the IMAPTalk
object. See a description in the section C<release_socket()> method for
more information.
lib/Mail/IMAPTalk.pm view on Meta::CPAN
my $SocketClass = $DefSocketClass;
my $SSLOpt = $Args{UseSSL};
if ($SSLOpt) {
my $SSLUse = $SSLOpt eq '1' ? '' : " qw($SSLOpt)";
eval "use IO::Socket::SSL$SSLUse; 1;" || return undef;
$SocketClass = "IO::Socket::SSL";
$DefaultPort = 993;
$SocketOpts{$_} = $Args{$_} for grep { /^SSL_/ } keys %Args;
}
$SocketOpts{PeerHost} = $Self->{Server} = $Args{Server} || die "No Server name given";
lib/Mail/IMAPTalk.pm view on Meta::CPAN
$! = 0;
$@ = "";
$Socket = ($Args{NewSocketCB} || sub { shift->new(@_) })->($SocketClass, %SocketOpts);
if (!$Socket) {
# Divine error from system level IO::Socket ($!), IO::Socket::Paranoid ($@) or SSL level IO::Socket::SSL.
my $Err = $! || $@ || ($SSLOpt ? IO::Socket::SSL::errstr() : "") || "Unknown";
$! = 0; # Clear so only $@ is set
$@ = "IMAPTalk: socket connection failed - $Err";
return undef;
}
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mail/Make.pm view on Meta::CPAN
=item C<SSL>
Boolean. When true, the connection is wrapped in SSL/TLS from the start (SMTPS, typically port 465).
Requires L<IO::Socket::SSL>.
=item C<StartTLS>
Boolean. When true, a plain connection is established first and then upgraded to TLS via the SMTP C<STARTTLS> extension (typically port 587).
Requires L<IO::Socket::SSL>. Ignored when C<Host> is a pre-built L<Net::SMTP> object.
=item C<SSL_opts>
Hash reference of additional options passed to L<IO::Socket::SSL> during the SSL/TLS handshake. For example:
SSL_opts => { SSL_verify_mode => 0 } # disable peer cert check
SSL_opts => { SSL_ca_file => '/etc/ssl/ca.pem' }
=item C<Timeout>
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mail/POP3Client.pm view on Meta::CPAN
my $s = $me->{SOCKET};
$s || do {
if ( $me->{USESSL} ) {
if ( $me->Port() == 110 ) { $me->Port( 995 ); }
eval {
require IO::Socket::SSL;
};
$@ and $me->Message("Could not load IO::Socket::SSL: $@") and return 0;
$s = IO::Socket::SSL->new( PeerAddr => $me->Host(),
PeerPort => $me->Port(),
Proto => "tcp",
Type => SOCK_STREAM,
LocalAddr => $me->LocalAddr(),
Timeout => $me->{TIMEOUT} )
lib/Mail/POP3Client.pm view on Meta::CPAN
$pop2->Pass( "doublesecret" );
$pop2->Connect() >= 0 || die $pop2->Message();
$pop2->Close();
# OR to use your own SSL socket...
my $socket = IO::Socket::SSL->new( PeerAddr => 'pop.securedo.main',
PeerPort => 993,
Proto => 'tcp') || die "No socket!";
my $pop = Mail::POP3Client->new();
$pop->User('somebody');
$pop->Pass('doublesecret');
lib/Mail/POP3Client.pm view on Meta::CPAN
Another warning, it's impossible to differentiate between a timeout
and a failure.
If you pass a true value for USESSL, the port will be changed to 995 if
it is not set or is 110. Otherwise, it will use your port. If USESSL
is true, IO::Socket::SSL will be loaded. If it is not in your perl,
the call to connect will fail.
new returns a valid Mail::POP3Client object in all cases. To test for
a connection failure, you will need to check the number of messages:
-1 indicates a connection error. This will likely change sometime in
view all matches for this distribution
view release on metacpan or search on metacpan
},
"runtime" : {
"requires" : {
"Carp" : "1.20",
"HTTP::Tiny" : "0.013",
"IO::Socket::SSL" : "1.44",
"JSON" : "2.53",
"Moo" : "1.006",
"URI::Escape" : "3.30",
"perl" : "5.008",
"strict" : "0",
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mail/Sender.pm view on Meta::CPAN
my $TLS_notsupported;
BEGIN {
eval <<'END'
use IO::Socket::SSL;# qw(debug4);
use Net::SSLeay;
1;
END
or $TLS_notsupported = $@;
}
lib/Mail/Sender.pm view on Meta::CPAN
}
sub _IO_SOCKET_SSL {
my $msg = shift || '';
$! = 5;
$Error = "IO::Socket::SSL->start_SSL failed: $msg";
return -24, $Error;
}
sub _TLS_UNSUPPORTED_BY_ME {
my $msg = shift || '';
lib/Mail/Sender.pm view on Meta::CPAN
return $self->Error(_STARTTLS($code, $text)) if ($code != 220);
my %ssl_options = (
SSL_version => 'TLSv1',
SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(),
);
if (exists $self->{ssl_version}) {
$ssl_options{SSL_version} = $self->{ssl_version};
}
if (exists $self->{ssl_verify_mode}) {
lib/Mail/Sender.pm view on Meta::CPAN
if (exists $self->{ssl_hostname}) {
$ssl_options{SSL_hostname} = $self->{ssl_hostname};
}
if ($self->{'debug'}) {
$res = IO::Socket::SSL->start_SSL(tied(*$s)->[0], %ssl_options);
}
else {
$res = IO::Socket::SSL->start_SSL($s, %ssl_options);
}
if (!$res) {
return $self->Error(_IO_SOCKET_SSL(IO::Socket::SSL::errstr()));
}
{
my $res = $self->_say_helo($s);
return $res if $res;
lib/Mail/Sender.pm view on Meta::CPAN
# mutating single attributes could get costly!
$sender = $sender->new({auth_encoded => 1});
my $auth_enc = $sender->{auth_encoded}; # reach in to grab
If set to a true value, L<Mail::Sender> attempts to use TLS (encrypted connection)
whenever the server supports it and you have L<IO::Socket::SSL> and L<Net::SSLeay>.
The default value of this option is true! This means that if L<Mail::Sender>
can send the data encrypted, it will.
=head2 authdomain
lib/Mail/Sender.pm view on Meta::CPAN
# -19 = authentication protocol is not implemented
# -20 = all recipients were rejected by the server
# -21 = file specified as an attachment cannot be read
# -22 = failed to open the specified debug file for writing
# -23 = STARTTLS failed (for SSL or TLS encrypted connections)
# -24 = IO::Socket::SSL->start_SSL failed
# -25 = TLS required by the specified options, but the required modules are not available. Need IO::Socket::SSL and Net::SSLeay
# -26 = TLS required by the specified options, but the server doesn't support it
# -27 = unknown encoding specified for the mail body, part or attachment. Only base64, quoted-printable, 7bit and 8bit supported.
my $on_errors = $sender->{on_errors}; # reach in to grab
say $Mail::Sender::Error; # contains a textual description of last error.
lib/Mail/Sender.pm view on Meta::CPAN
=head2 ssl_...
The C<ssl_version>, C<ssl_verify_mode>, C<ssl_ca_path>, C<ssl_ca_file>,
C<ssl_verifycb_name>, C<ssl_verifycn_schema> and C<ssl_hostname> options (if
specified) are passed to L<IO::Socket::SSL/"start_SSL">. The default version is
C<TLSv1> and verify mode is C<IO::Socket::SSL::SSL_VERIFY_NONE>.
If you change the C<ssl_verify_mode> to C<SSL_VERIFY_PEER>, you may need to
specify the C<ssl_ca_file>. If you have L<Mozilla::CA> installed, then setting
it to C<< Mozilla::CA::SSL_ca_file() >> may help.
lib/Mail/Sender.pm view on Meta::CPAN
$sender = $sender->new({tls_allowed => 0}); # false
my $tls = $sender->{tls_allowed}; # reach in to grab
If set to a true value, L<Mail::Sender> will attempt to use TLS (encrypted
connection) whenever the server supports it. This requires that you have
L<IO::Socket::SSL> and L<Net::SSLeay>.
=head2 tls_required
# mutating single attributes could get costly!
$sender = $sender->new({tls_required => 1}); # true, require TLS encryption
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mail/SpamAssassin/SpamdForkScaling.pm view on Meta::CPAN
}
if ($state == PFSTATE_ERROR) {
return;
}
else {
if( Scalar::Util::blessed($self->{server_fh}[0]) eq 'IO::Socket::SSL' ) {
warn "prefork: SSL connection protocol error";
}
warn "prefork: ordered child $kid to accept, but they reported state '$state', killing rogue";
$self->child_error_kill($kid, $sock);
$self->adapt_num_children();
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mail/Toaster/Setup.pm view on Meta::CPAN
=back
=head1 DEPENDENCIES
IO::Socket::SSL
=head1 AUTHOR
Matt Simerson - matt@tnpi.net
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mailru/Cloud.pm view on Meta::CPAN
use URI::Escape;
use File::Basename;
use HTTP::Request;
use JSON::XS;
use Encode;
use IO::Socket::SSL;
use base qw/Mailru::Cloud::Auth/;
our $VERSION = '0.10';
my $BUFF_SIZE = 512;
lib/Mailru/Cloud.pm view on Meta::CPAN
sub __upload_file {
my ($self, $url, $file) = @_;
my $u1 = URI->new($url);
# $IO::Socket::SSL::DEBUG = 5;
my $host = $u1->host;
my $port = $u1->port;
my $path = $u1->path;
my $sock = IO::Socket::SSL->new(
PeerAddr => $host,
PeerPort => $port,
Proto => 'tcp',
) or croak "Cant connect to $host:$port";
binmode $sock;
lib/Mailru/Cloud.pm view on Meta::CPAN
-path => Path to shared resource
=head1 DEPENDENCE
L<LWP::UserAgent>, L<JSON::XS>, L<URI::Escape>, L<IO::Socket::SSL>, L<Encode>, L<HTTP::Request>, L<Carp>, L<File::Basename>
=head1 AUTHORS
=over 4
view all matches for this distribution
view release on metacpan or search on metacpan
.travis.yml view on Meta::CPAN
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
- echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
- sudo apt-get update -q
- sudo apt-get install mongodb-org-server
install:
- "cpanm -n Test::Pod Test::Pod::Coverage IO::Socket::SSL"
- "cpanm -n ODC/Mango-1.16.tar.gz"
- "cpanm -n --installdeps ."
notifications:
email: false
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mango.pm view on Meta::CPAN
All connections will be reset automatically if a new process has been forked,
this allows multiple processes to share the same L<Mango> object safely.
For better scalability (epoll, kqueue) and to provide IPv6, SOCKS5 as well as
TLS support, the optional modules L<EV> (4.0+), L<IO::Socket::IP> (0.20+),
L<IO::Socket::Socks> (0.64+) and L<IO::Socket::SSL> (1.84+) will be used
automatically if they are installed. Individual features can also be disabled
with the C<MOJO_NO_IPV6>, C<MOJO_NO_SOCKS> and C<MOJO_NO_TLS> environment
variables.
=head1 EVENTS
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Maplat/Web.pm view on Meta::CPAN
use FileHandle;
use Socket;
use Data::Dumper;
use Maplat::Helpers::Mascot;
use Module::Load;
#use IO::Socket::SSL;
#=!=START-AUTO-INCLUDES
use Maplat::Web::Accesslog;
use Maplat::Web::AutoDialogs;
use Maplat::Web::BaseModule;
view all matches for this distribution
view release on metacpan or search on metacpan
"requires" : {
"share" : {
"Archive::Tar" : "0",
"Config" : "0",
"HTTP::Tiny" : "0.044",
"IO::Socket::SSL" : "1.56",
"IO::Zlib" : "0",
"Mojo::DOM58" : "1.00",
"Mozilla::CA" : "0",
"Net::SSLeay" : "1.49",
"Sort::Versions" : "0",
view all matches for this distribution
view release on metacpan or search on metacpan
},
"runtime" : {
"requires" : {
"Carp" : "0",
"HTTP::Tiny" : "0.092",
"IO::Socket::SSL" : "0",
"JSON::MaybeXS" : "1.001000",
"Moo" : "0",
"Moo::Role" : "0",
"Try::Tiny" : "0",
"Types::Standard" : "0",
view all matches for this distribution
view release on metacpan or search on metacpan
},
"runtime" : {
"requires" : {
"Carp" : "0",
"HTTP::Tiny" : "0.056",
"IO::Socket::SSL" : "1.42",
"JSON::MaybeXS" : "0",
"JSON::PP" : "0",
"Moo" : "0",
"Moo::Role" : "0",
"Net::SSLeay" : "1.49",
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Metabase/Client/Simple.pm view on Meta::CPAN
#pod profile - a Metabase::User::Profile object
#pod secret - a Metabase::User::Secret object
#pod uri - the root URI for the metabase server
#pod
#pod If you use a C<uri> argument with the 'https' scheme, you must have
#pod L<IO::Socket::SSL> and L<Net::SSLeay> installed. You may also
#pod require L<Mozilla::CA>.
#pod
#pod =cut
sub new {
lib/Metabase/Client/Simple.pm view on Meta::CPAN
profile - a Metabase::User::Profile object
secret - a Metabase::User::Secret object
uri - the root URI for the metabase server
If you use a C<uri> argument with the 'https' scheme, you must have
L<IO::Socket::SSL> and L<Net::SSLeay> installed. You may also
require L<Mozilla::CA>.
=head2 submit_fact
$client->submit_fact($fact);
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Metabrik/Client/Ssl.pm view on Meta::CPAN
getcertificate => [ qw(uri|OPTIONAL) ],
getcertificate2 => [ qw(host port) ],
},
require_modules => {
'Data::Dumper' => [ ],
'IO::Socket::SSL' => [ ],
'LWP::UserAgent' => [ ],
'LWP::ConnCache' => [ ],
'URI' => [ ],
'Net::SSLeay' => [ ],
'Metabrik::String::Uri' => [ ],
lib/Metabrik/Client/Ssl.pm view on Meta::CPAN
my $port = $parsed->{port};
$self->log->debug("verify_server: trying host [".$parsed->{host}."] ".
"with port [".$parsed->{port}."]");
my $client = IO::Socket::SSL->new(
PeerHost => $parsed->{host},
PeerPort => $parsed->{port},
SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_PEER(),
SSL_verifycn_name => $parsed->{host},
SSL_verifycn_scheme => 'http',
);
if (! defined($client) && ! length($!)) {
$self->log->verbose("verify_server: not verified: [".
$IO::Socket::SSL::SSL_ERROR."]");
return 0;
}
elsif (! defined($client)) {
return $self->log->error("verify_server: connection failed with ".
"error: [$!]");
lib/Metabrik/Client/Ssl.pm view on Meta::CPAN
return 1;
}
#
# Note: works only with IO::Socket::SSL, not with Net::SSL (using Crypt::SSLeay)
#
sub getcertificate {
my $self = shift;
my ($uri) = @_;
lib/Metabrik/Client/Ssl.pm view on Meta::CPAN
}
my $sock = $cc->[0][0];
my %info = ();
# peer_certificate from IO::Socket::SSL/Crypt::SSLeay
if ($sock->can('peer_certificate')) {
my $authority = $sock->peer_certificate('authority'); # issuer
my $owner = $sock->peer_certificate('owner'); # subject
my $commonName = $sock->peer_certificate('commonName'); # cn
my $subjectAltNames = $sock->peer_certificate('subjectAltNames');
view all matches for this distribution
view release on metacpan or search on metacpan
lib/MikroTik/API.pm view on Meta::CPAN
=cut
use Carp qw(croak);
use Digest::MD5;
use IO::Socket::IP;
use IO::Socket::SSL;
use Moo;
use MooX::Types::MooseLike::Base qw(Bool CodeRef Int Str);
use Time::Out qw{ timeout };
use Try::Tiny;
use Type::Tiny;
lib/MikroTik/API.pm view on Meta::CPAN
}
if ( $self->get_use_ssl ) {
my $socket
= try {
IO::Socket::SSL->new(
PeerHost => $self->get_host,
PeerPort => $self->get_port,
Proto => 'tcp',
SSL_cipher_list => 'HIGH',
SSL_verify_mode => $self->get_ssl_verify(),
lib/MikroTik/API.pm view on Meta::CPAN
croak sprintf
'failed connect %s:%s or ssl handshake (%s: %s)',
$self->get_host,
$self->get_port,
$_,
IO::Socket::SSL::errstr();
};
# obsolete?
$socket
or croak sprintf
'failed connect %s:%s or ssl handshake (%s: %s)',
$self->get_host,
$self->get_port,
$!,
IO::Socket::SSL::errstr();
$self->set_socket($socket);
}
else {
$self->set_socket(
IO::Socket::IP->new(
view all matches for this distribution
view release on metacpan or search on metacpan
use lib "$FindBin::Bin/lib";
use Test::More;
plan skip_all => 'TLS tests. Set TEST_TLS to run.' unless $ENV{TEST_TLS} || $ENV{TEST_ALL};
plan skip_all => 'IO::Socket::SSL required for TLS support in Mojolicious.'
unless eval { require Mojo::IOLoop::TLS; Mojo::IOLoop::TLS->TLS; };
# It won't work with an old built-in cert and I can't care less to find out why.
# It's tests only issue
plan skip_all => 'Mojolicious 8.18+ only.'
view all matches for this distribution
view release on metacpan or search on metacpan
t/lib/Test/Apache2/MG.pm view on Meta::CPAN
Apache::TestRequest::user_agent(reset => 1, keep_alive => 1 );
my $ua = Apache::TestRequest->new;
# To get the fingerprint for the certificate in ./t/server.crt, do:
# echo "sha1\$$(openssl x509 -noout -in ./t/server.crt -fingerprint -sha1|perl -pE 's/^.*Fingerprint=|(\w{2})(?:\:?|$)/$1/g')"
$ua->ssl_opts(
# SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE,
# SSL_verify_mode => 0x00
# verify_hostname => 0,
SSL_fingerprint => 'sha1$2FBAB657122088E11FA95E34C1BD9E3635EC535A',
# SSL_version => 'SSLv3',
# SSL_verfifycn_name => 'localhost',
view all matches for this distribution
view release on metacpan or search on metacpan
- Fix RT #89000: test broken by indirect base.pm disuse
- delete base.pm from list of expected deps,
patch by Andrew Main (zefram@fysh.org)
- new %Preload rule for Net::HTTPS (e.g. used by LWP::Protocol::https)
- look for IO::Socket::SSL or Net::SSL
- new %Preload rule for YAML::Any
- try to figure out what YAML::Any would have used
(using YAML::Any->implementation)
- as fallback, include anything below YAML
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mojar/Cron/Holiday/UkGov.pm view on Meta::CPAN
has division => 'england-and-wales';
has url => 'https://www.gov.uk/bank-holidays.json';
sub load {
my ($self, %param) = @_;
require IO::Socket::SSL;
my $tx = $self->agent->get($self->url);
if (my $err = $tx->error) {
$self->error(sprintf "Failed to fetch holidays (%u)\n%s",
$err->{advice} // '0', $err->{message} // 'coded error');
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mojar/Google/Analytics.pm view on Meta::CPAN
our $VERSION = 1.112;
use 5.014; # For MIME::Base64::encode_base64url
use Carp 'croak';
use IO::Socket::SSL 1.75;
use Mojar::Auth::Jwt;
use Mojar::Google::Analytics::Request;
use Mojar::Google::Analytics::Response;
use Mojo::UserAgent;
view all matches for this distribution
view release on metacpan or search on metacpan
"ExtUtils::MakeMaker" : "6.3"
}
},
"runtime" : {
"requires" : {
"IO::Socket::SSL" : "2.009",
"MIME::Entity" : "5.5",
"Mojar" : "2.1",
"Mojar::Cron" : "0.2",
"Mojolicious" : "9.15",
"Net::SMTP" : "1.28",
view all matches for this distribution
view release on metacpan or search on metacpan
- Bumping to 1.0, since it seems pretty stable at this point
- Improved documentation and SYNOPSIS example
- Made t/feedback.t and t/send.t run again
0.07 2015-01-03T23:14:39Z
- IO::Socket::SSL 1.84 required #5
0.06 2015-01-02T12:51:25Z
- Avoid length of undefined values #6
- Use encode_json instead of OO Mojo::JSON #4
0.0402 2013-09-06T23:38:16Z
- Fix Makefile.PL
0.0401 2013-08-26T23:16:28Z
- IO::Socket::SSL 1.75 required for TLS support
0.04 2013-08-16T23:23:59Z
- Change default value for "sandbox" attribute
- Fix NAME in Makefile.PL
view all matches for this distribution
view release on metacpan or search on metacpan
'Mojolicious' => 0,
'URL::Encode' => 0,
'Digest::HMAC_SHA1' => '1.03',
'URI::Encode' => 0,
'File::HomeDir' => 0,
'IO::Socket::SSL' => '2.020',
},
add_to_cleanup => ['Mojo-Cloudstack-*'],
create_makefile_pl => 'traditional',
);
view all matches for this distribution
view release on metacpan or search on metacpan
.travis.yml view on Meta::CPAN
- "5.12"
- "5.10"
env:
- "HARNESS_OPTIONS=j9"
install:
- "cpanm -n Test::Pod Test::Pod::Coverage IO::Socket::SSL"
- "cpanm -n --installdeps ."
notifications:
email: false
view all matches for this distribution
view release on metacpan or search on metacpan
2018-06-29 Mojo::IRC::Server::Chinese v1.8.2
1ï¼ä¿®å¤å®¢æ·ç«¯ä¿®æ¹æµç§°æ¶ï¼å¦ææµç§°å
å«ç©ºæ ¼çç¹æ®å符导è´å¼å¸¸çé®é¢
2ï¼ä¿®å¤æå¡å¨æå°æ¶é´ä¸çå¹´ä»½æ ¼å¼é误
3ï¼å¢å INVITE WHOIS æ¯æ
4ï¼ç¨æ·ç»å½æååï¼æ¯æè¾åºMOTDä¿¡æ¯
5ï¼æ´æ°ä¾èµå
³ç³»ï¼è§£å³ IO::Socket::SSL 2.009+ required for TLS support é®é¢
2017-02-12 Mojo::IRC::Server::Chinese v1.8.1
1ï¼æ°å¢é¢ébugä¿®å¤
2ï¼TLSå 坿¯æ
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mojo/IRC.pm view on Meta::CPAN
L<Mojo::IRC> is a non-blocking IRC client using L<Mojo::IOLoop> from the
wonderful L<Mojolicious> framework.
It features IPv6 and TLS, with additional optional modules:
L<IO::Socket::IP> and L<IO::Socket::SSL>.
By default this module will only emit standard IRC events, but by
settings L</parser> to a custom object it will also emit CTCP events.
Example:
view all matches for this distribution
view release on metacpan or search on metacpan
.travis.yml view on Meta::CPAN
- "TEST_SLOW=1"
before_install:
- sudo apt-get update -qq
- sudo apt-get install redis-server
install:
- "cpanm -n Test::Pod Test::Pod::Coverage IO::Socket::SSL Sort::Versions"
- "cpanm -n --installdeps ."
notifications:
email: false
view all matches for this distribution
view release on metacpan or search on metacpan
lib/Mojo/SMTP/Client.pm view on Meta::CPAN
# STARTTLS
sub _cmd_starttls {
my ($self, $arg) = @_;
weaken $self;
require IO::Socket::SSL and IO::Socket::SSL->VERSION(0.98);
return (
sub {
my $delay = shift;
$self->_write_cmd('STARTTLS', CMD_STARTTLS);
lib/Mojo/SMTP/Client.pm view on Meta::CPAN
$sock = undef;
$tls_cb->($delay, undef, @_>=2 ? $_[1] : 'Inactivity timeout');
$tls_cb = $delay = undef;
};
$sock = IO::Socket::SSL->start_SSL(
$self->{stream}->steal_handle,
SSL_ca_file => $self->tls_ca,
SSL_cert_file => $self->tls_cert,
SSL_key_file => $self->tls_key,
SSL_verify_mode => $self->tls_verify,
SSL_verifycn_name => $self->address,
SSL_verifycn_scheme => $self->tls_ca ? 'smtp' : undef,
SSL_startHandshake => 0,
SSL_error_trap => $error_handler
)
or return $delay->pass(0, $IO::Socket::SSL::SSL_ERROR);
$tls_cb = $delay->begin;
$loop = $self->_ioloop;
$tid = $loop->timer($self->inactivity_timeout => $error_handler);
lib/Mojo/SMTP/Client.pm view on Meta::CPAN
$tls_cb = $delay = undef;
return;
}
return $loop->reactor->watch($sock, 1, 0)
if $IO::Socket::SSL::SSL_ERROR == IO::Socket::SSL::SSL_WANT_READ();
return $loop->reactor->watch($sock, 0, 1)
if $IO::Socket::SSL::SSL_ERROR == IO::Socket::SSL::SSL_WANT_WRITE();
})->watch($sock, 0, 1);
},
sub {
my ($delay, $resp, $error) = @_;
lib/Mojo/SMTP/Client.pm view on Meta::CPAN
Port of SMTP server. Default is C<25> for plain connection and C<465> if TLS is enabled.
=head2 tls
Enable TLS. Should be true if SMTP server expects encrypted connection. Default is false.
Proper version of L<IO::Socket::SSL> should be installed for TLS support in L<Mojo::IOLoop::Client>,
which you can find with C<mojo version> command.
=head2 tls_ca
Path to TLS certificate authority file. Also activates hostname verification.
lib/Mojo/SMTP/Client.pm view on Meta::CPAN
$smtp->send(hello => 'mymail.me');
=item starttls
Upgrades connection from plain to encrypted. Some servers requires this before sending any other commands.
L<IO::Socket::SSL> 0.98+ should be installed for this to work. See also L</tls_ca>, L</tls_cert>, L</tls_key>
attributes
$smtp->tls_ca('/etc/ssl/certs/ca-certificates.crt');
$smtp->send(starttls => 1);
view all matches for this distribution