Skip Menu |

This queue is for tickets about the MIME-Lite CPAN distribution.

Report information
The Basics
Id: 61319
Status: new
Priority: 0/
Queue: MIME-Lite

People
Owner: Nobody in particular
Requestors: fakessh [...] fakessh.eu
Cc:
AdminCc:

Bug Information
Severity: Wishlist
Broken in: 3.027
Fixed in: (no value)



i add the support for smtp tls with port 587 please commit [root@r13151 ~]# uname -a Linux r13151.ovh.net 2.6.32.2-xxxx-grs-ipv4-32 #1 SMP Tue Dec 29 14:41:18 UTC 2009 i686 i686 i386 GNU/Linux [root@r13151 ~]# perl -V Summary of my perl5 (revision 5 version 8 subversion 8) configuration: Platform: osname=linux, osvers=2.6.18-53.el5, archname=i386-linux-thread-multi uname='linux builder10.centos.org 2.6.18-53.el5 #1 smp mon nov 12 02:14:55 est 2007 i686 athlon i386 gnulinux ' config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -Dversion=5.8.8 -Dmyhostname=localhost -Dperladmin=root@localhost -Dcc=gcc -Dcf_by=Red Hat, Inc. -Dinstallprefix=/usr -Dprefix=/usr -Darchname=i386-linux-thread-multi -Dvendorprefix=/usr -Dsiteprefix=/usr -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 -Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto -Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto -Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto -Dinc_version_list=5.8.7 5.8.6 5.8.5 -Dscriptdir=/usr/bin' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='gcc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I/usr/include/gdbm', optimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables', cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include -I/usr/include/gdbm' ccversion='', gccversion='4.1.2 20080704 (Red Hat 4.1.2-48)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='gcc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lresolv -lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc perllibs=-lresolv -lnsl -ldl -lm -lcrypt -lutil -lpthread -lc libc=/lib/libc-2.5.so, so=so, useshrplib=true, libperl=libperl.so gnulibc_version='2.5' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE' cccdlflags='-fPIC', lddlflags='-shared -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP USE_ITHREADS USE_LARGE_FILES USE_PERLIO USE_REENTRANT_API Built under linux Compiled at Jun 7 2010 21:31:34 @INC: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 . [root@r13151 ~]# use centos 5.5
Subject: patchmimelite.patch
347c347 < $VERSION = '3.025'; --- > $VERSION = '3.027'; 407d406 < tls => [], 440c439 < if ( !$PARANOID and eval "require MIME::Types; MIME::Types->VERSION(1.004);" ) { --- > if ( !$PARANOID and eval "require MIME::Types; MIME::Types->VERSION(1.28);" ) { 2569,2570c2568 < } < if (@_) { ### no args; use defaults --- > } else { ### no args; use defaults 2573,2575d2570 < } else { < $method = 'send_by_smtp_' . $meth; < @args = @{ $SenderArgs{$Sender} || [] }; 2844,2902d2838 < sub send_by_smtp_tls { < require Net::SMTP::TLS; < my ($self,$hostname,%args) = @_; < # We may need the "From:" and "To:" headers to pass to the < # SMTP mailer also. < $self->{last_send_successful}=0; < < my @hdr_to = extract_only_addrs( scalar $self->get('To') ); < if ($AUTO_CC) { < foreach my $field (qw(Cc Bcc)) { < push @hdr_to, extract_only_addrs($_) for $self->get($field); < } < } < Carp::croak "send_by_smtp: nobody to send to for host '$hostname'?!\n" < unless @hdr_to; < < $args{To} ||= \@hdr_to; < $args{From} ||= extract_only_addrs( scalar $self->get('Return-Path') ); < $args{From} ||= extract_only_addrs( scalar $self->get('From') ) ; < < # Create SMTP client. < # MIME::Lite::SMTP is just a wrapper giving a print method < # to the SMTP object. < < my %opts = __opts(\%args, @_net_smtp_opts); < my $smtp = MIME::Lite::SMTP::TLS->new( $hostname, %opts ) < or Carp::croak "SMTP Failed to connect to mail server: $!\n"; < < # Send the mail command < %opts = __opts( \%args, @_mail_opts); < $smtp->mail( $args{From}, %opts ? \%opts : () ) < or die "SMTP mail() command failed: $!\n" < . $smtp->message . "\n"; < < # Send the recipients command < %opts = __opts( \%args, @_recip_opts); < $smtp->to( @{ $args{To} }, %opts ? \%opts : () ) < or die "SMTP recipient() command failed: $!\n" < . $smtp->message . "\n"; < < # Send the data < $smtp->data < or die "SMTP data() command failed: $!\n" < . $smtp->message . "\n"; < $self->datasend( eval {print_for_smtp($smtp)}); < < # Finish the mail < $smtp->dataend() < or Carp::croak "Net::CMD (Net::SMTP) DATAEND command failed.\n" < . "Last server message was:" < . $smtp->message < . "This probably represents a problem with newline encoding "; < < # terminate the session < $smtp->quit; < < return $self->{last_send_successful} = 1; < } < 2930a2867 > 2974a2912,2942 > =item send_by_testfile FILENAME > > I<Instance method.> > Print message to a file (namely FILENAME), which will default to > mailer.testfile > If file exists, message will be appended. > > =cut > > sub send_by_testfile { > my $self = shift; > > ### Use the default filename... > my $filename = 'mailer.testfile'; > > if ( @_ == 1 and !ref $_[0] ) { > ### Use the given filename if given... > $filename = shift @_; > Carp::croak "no filename given to send_by_testfile" unless $filename; > } > > ### Do it: > local *FILE; > open FILE, ">> $filename" or Carp::croak "open $filename: $!\n"; > $self->print( \*FILE ); > close FILE; > my $return = ( ( $? >> 8 ) ? undef: 1 ); > > return $self->{last_send_successful} = $return; > } > 3025d2992 < require Net::SMTP::TLS, 3164,3204d3130 < package MIME::Lite::SMTP::TLS; < < #============================================================ < # This class just adds a print() method to Net::SMTP. < # Notice that we don't use/require it until it's needed! < < use strict; < use vars qw( @ISA ); < @ISA = qw(Net::SMTP::TLS); < < # some of the below is borrowed from Data::Dumper < my %esc = ( "\a" => "\\a", < "\b" => "\\b", < "\t" => "\\t", < "\n" => "\\n", < "\f" => "\\f", < "\r" => "\\r", < "\e" => "\\e", < ); < < sub _hexify { < local $_ = shift; < my @split = m/(.{1,16})/gs; < foreach my $split (@split) { < ( my $txt = $split ) =~ s/([\a\b\t\n\f\r\e])/$esc{$1}/sg; < $split =~ s/(.)/sprintf("%02X ",ord($1))/sge; < print STDERR "M::L >>> $split : $txt\n"; < } < } < < sub print { < my $smtp = shift; < $MIME::Lite::DEBUG and _hexify( join( "", @_ ) ); < $smtp->datasend(@_) < or Carp::croak( "Net::CMD (Net::SMTP) DATASEND command failed.\n" < . "Last server message was:" < . $smtp->message < . "This probably represents a problem with newline encoding " ); < } < #============================================================ < 3717c3643 < Version: 3.01_06 (Dev Test Release) --- > Version: 3.027