🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
8 messages
8 total messages Started by MaRc Thu, 13 Jan 2011 15:29
perl i wysylanie maila
#52149
Author: MaRc
Date: Thu, 13 Jan 2011 15:29
33 lines
1621 bytes
witam
mam w perlu taki fragment kodu:

use Mail::Sender;
my $sender = new Mail::Sender;
my @odbiorcy= qw(marcin@gmail.com);


my $mailTresc = "";

foreach my $odb (@odbiorcy) {
if ($sender->MailMsg({
    smtp => 'smtp.gmail.com',
    from => 'albundy@gmail.com',
    to =>$odb,
    subject => "Status urzadzen $czas",
    msg => $mailTresc,
    auth => 'LOGIN',
    authid => 'albundy@gmail.com',
    authpwd => 'albundypassword',
  }) < 0) {
   die "$Mail::Sender::Error\n";
  }
  print "Mail to $odb sent OK.\n"
}

w zaleznosci od statusu urzadzen ilosc znakow w zmiennej $mailTresc jest 
rozna.
mail jest wysylany jak jest nie wiele znakow, ale jesli pojawi sie wieksza 
ilosc tekstu to niestety mail nie zostaje wyslany :( mam time outa

czy to jest moze wina modulu Mail::Sender ??
ewentualnie jak zaradzic temu "zjawisku"?
Re: perl i wysylanie maila [Mail::Sender]
#52150
Author: Andrzej Adam Filip
Date: Thu, 13 Jan 2011 16:27
51 lines
2603 bytes
MaRc <marc@gmails.com> pisze:
> witam
> mam w perlu taki fragment kodu:
>
> use Mail::Sender;
> my $sender = new Mail::Sender;
> my @odbiorcy= qw(marcin@gmail.com);
>
>
> my $mailTresc = "";
>
> foreach my $odb (@odbiorcy) {
> if ($sender->MailMsg({
>    smtp => 'smtp.gmail.com',
>    from => 'albundy@gmail.com',
>    to =>$odb,
>    subject => "Status urzadzen $czas",
>    msg => $mailTresc,
>    auth => 'LOGIN',
>    authid => 'albundy@gmail.com',
>    authpwd => 'albundypassword',
>  }) < 0) {
>   die "$Mail::Sender::Error\n";
>  }
>  print "Mail to $odb sent OK.\n"
> }
>
> w zaleznosci od statusu urzadzen ilosc znakow w zmiennej $mailTresc
> jest rozna.
> mail jest wysylany jak jest nie wiele znakow, ale jesli pojawi sie
> wieksza ilosc tekstu to niestety mail nie zostaje wyslany :( mam time
> outa
>
> czy to jest moze wina modulu Mail::Sender ??
> ewentualnie jak zaradzic temu "zjawisku"?

Ustaw debug na zapis do pliku a potem go obejrzyj:
http://search.cpan.org/~jenda/Mail-Sender-0.8.16/Sender.pm

Obstawiałby jakieś problemy z długością linii w emailu.

P.S.
Po za tym przy wysyłaniu większej ilości emaili w stylu 
"jeden odbiorca = jeden email" ja użyłbym modułu Net::SMTP
i jednej sesji SMTP to wysłania wszystkich taich maili.

-- 
Andrzej Adam Filip : anfi@onet.eu : Andrzej.Filip@gmail.com
Gdy zmienią się trendy muzyczne,
jednocześnie zmianom ulegają fundamentalne prawa państwa.
  -- Platon (427-347 p.n.e.)
Re: perl i wysylanie maila [Mail::Sender]
#52152
Author: MaRc
Date: Thu, 13 Jan 2011 16:33
16 lines
1408 bytes
> Obstawiałby jakieś problemy z długością linii w emailu.

tez to obstawiam. i na 99% jestem tego pewnien. bo z Net::SMTP mam to 
samo. debug pokazuje ze wysylana jest linia, ale juz nie cala, i w tym 
miejcu wisi :(

hmm, w takim razie, jak wyslac maila z dluga linijka?


>
> P.S.
> Po za tym przy wysyłaniu większej ilości emaili w stylu
> "jeden odbiorca = jeden email" ja użyłbym modułu Net::SMTP
> i jednej sesji SMTP to wysłania wszystkich taich maili.
>
Re: perl i wysylanie maila [Mail::Sender]
#52154
Author: MaRc
Date: Thu, 13 Jan 2011 17:26
69 lines
3418 bytes
> Ustaw debug na zapis do pliku a potem go obejrzyj:

ok. uzylem opcj debugowania i Net::SMTP.
widze ze nie tylko o dluga linijke chodzi.

oto kawalek kodu:

my $message = <<"EOM";
This is a test. Please ignore this message.
EOM

my $message1 = <<"EOM";
This is a test. Please ignore this message.
EOM

$smtp->data();
$smtp->datasend( "Subject: to jest temat\n" );
$smtp->datasend( $message );
for (my $i=0; $i<101; $i++){
$smtp->datasend( $message1 );
}
$smtp->dataend;
$smtp->quit;

specjalnie zrobilem petle for zeby wykluczyc dluga linijke.

oto wydruk z odpalenia skryptu:

Server variables assigned
Net::SMTP>>> Net::SMTP(2.31)
Net::SMTP>>>   Net::Cmd(2.29)
Net::SMTP>>>     Exporter(5.62)
Net::SMTP>>>   IO::Socket::INET(1.31)
Net::SMTP>>>     IO::Socket(1.30_01)
Net::SMTP>>>       IO::Handle(1.27)
Net::SMTP=GLOB(0x9935e90)<<< 220 pat.example.pl ESMTP Postfix (Debian/GNU)
Net::SMTP=GLOB(0x9935e90)>>> EHLO alix.example.pl
Net::SMTP=GLOB(0x9935e90)<<< 250-pat.example.pl
Net::SMTP=GLOB(0x9935e90)<<< 250-PIPELINING
Net::SMTP=GLOB(0x9935e90)<<< 250-SIZE 30720000
Net::SMTP=GLOB(0x9935e90)<<< 250-VRFY
Net::SMTP=GLOB(0x9935e90)<<< 250-ETRN
Net::SMTP=GLOB(0x9935e90)<<< 250-STARTTLS
Net::SMTP=GLOB(0x9935e90)<<< 250-AUTH PLAIN LOGIN
Net::SMTP=GLOB(0x9935e90)<<< 250-AUTH=PLAIN LOGIN
Net::SMTP=GLOB(0x9935e90)<<< 250-ENHANCEDSTATUSCODES
Net::SMTP=GLOB(0x9935e90)<<< 250-8BITMIME
Net::SMTP=GLOB(0x9935e90)<<< 250 DSN
Server connection opened
Net::SMTP=GLOB(0x9935e90)>>> AUTH PLAIN hfjkashfuihauihfahf
Net::SMTP=GLOB(0x9935e90)<<< 235 2.7.0 Authentication successful
Net::SMTP=GLOB(0x9935e90)>>> MAIL FROM:<alix@example.pl>
Net::SMTP=GLOB(0x9935e90)<<< 250 2.1.0 Ok
Net::SMTP=GLOB(0x9935e90)>>> RCPT TO:<marcin@example.pl>
Net::SMTP=GLOB(0x9935e90)<<< 250 2.1.5 Ok
Server variables checked
Net::SMTP=GLOB(0x9935e90)>>> DATA
Net::SMTP=GLOB(0x9935e90)<<< 354 End data with <CR><LF>.<CR><LF>
Net::SMTP=GLOB(0x9935e90)>>> Subject: to jest temat
Net::SMTP=GLOB(0x9935e90)>>> This is a test. Please ignore this message.
Net::SMTP=GLOB(0x9935e90)>>> This is a test. Please ignore this message.
[...]
Net::SMTP=GLOB(0x9935e90)>>> This is a test. Please ignore this message.
Net::SMTP=GLOB(0x9935e90)>>> This is a test. Please ignore this message.
Net::SMTP=GLOB(0x9935e90)>>> This is a test. Please ignore this message.
Net::SMTP=GLOB(0x9935e90)>>> .
Net::SMTP=GLOB(0x9935e90): Timeout at ./mail2.pl line 63
Net::SMTP=GLOB(0x9935e90)>>> QUIT
Re: perl i wysylanie maila [Mail::Sender]
#52155
Author: MaRc
Date: Thu, 13 Jan 2011 17:34
8 lines
1144 bytes
> Net::SMTP=GLOB(0x9935e90): Timeout at ./mail2.pl line 63
> Net::SMTP=GLOB(0x9935e90)>>> QUIT


a postfix mi krzyczy:

postfix/smtpd[13671]: timeout after DATA (24 bytes)
Re: perl i wysylanie maila [MIME::Lite?]
#52153
Author: Andrzej Adam Filip
Date: Thu, 13 Jan 2011 17:43
21 lines
2082 bytes
MaRc <marc@gmails.com> pisze:
>> Obstawiałby jakieś problemy z długością linii w emailu.
>
> tez to obstawiam. i na 99% jestem tego pewnien. bo z Net::SMTP mam to
> samo. debug pokazuje ze wysylana jest linia, ale juz nie cala, i w tym
> miejcu wisi :(
>
> hmm, w takim razie, jak wyslac maila z dluga linijka?

Popatrz na moduł MIME::Lite i spróbuj użyć kodowania quoted-printable.
To pozwoli się zająć porządnie znakami "nie ASCII" (ogonkologią ĄąĆć...)
i właściwie połamać (w przesyłaniu) długie linie.
No chyba że masz takiej wielkości maile która zapcha pamięć.

Moduł MIME::Lite potrafi "wysłać sam" labo stworzyć "maila jako string"
do użycia przez inne moduły.

-- 
Andrzej Adam Filip : anfi@onet.eu : Andrzej.Filip@gmail.com
Duchy zmarłych radują się jedynie z ofiar składanych przez potomków.
  -- Przysłowie chińskie (pl.wikiquote.org)
Re: perl i wysylanie maila [Mail::Sender]
#52156
Author: Andrzej Adam Filip
Date: Thu, 13 Jan 2011 18:06
19 lines
1884 bytes
MaRc <marc@gmails.com> pisze:
>> Net::SMTP=GLOB(0x9935e90): Timeout at ./mail2.pl line 63
>> Net::SMTP=GLOB(0x9935e90)>>> QUIT
>
> a postfix mi krzyczy:
>
> postfix/smtpd[13671]: timeout after DATA (24 bytes)

Może być jeszcze problem z MTU (ginące duże pakiety TCP) gdy firewall po
drodze "radośnie" wycina pakiety ICMP informujące zwrotnie o tym że
pakiet TCP był za duży.

Masz *tego komputera* z którego próbujesz wysyłać maile problemy np. ze
ściąganiem po FTP? [wystarczy pliczek powyżej 10K].

-- 
Andrzej Adam Filip : anfi@onet.eu : Andrzej.Filip@gmail.com
Gdy woda sięga ust, głowa do góry!
  -- Lec, Stanisław Jerzy (1909-1966)
Re: perl i wysylanie maila [Mail::Sender]
#52157
Author: MaRc
Date: Thu, 13 Jan 2011 18:19
7 lines
1374 bytes
> Masz *tego komputera* z którego próbujesz wysyłać maile problemy np. ze
> ściąganiem po FTP? [wystarczy pliczek powyżej 10K].

qrde, na smierc zapomnialem. przez hosta przez ktorego przechodzi 
komunikacja jest jakis problem na vlanowych interfejsach :( i trzeba lekko 
zmienic mtu na kliencie.
wielkie dzieki. pomoglo.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads