use strict;
use Tk;
use Tk::Animation;
use Tk::LabEntry;
use Tk::Dialog;
use Net::SMTP;
# main window
my $mw = MainWindow->new(-title=>'SendMail Easy');
$mw->maxsize(qw/450 530/);
$mw->minsize(qw/450 530/);
my $fmain = $mw->Frame( -foreground=>'white',-background => 'ivory2',
+-relief=> 'groove', -borderwidth=>2 )->pack( -side => 'top');
my $lbtop = $fmain->Label(-text => "SendMail Easy\n",
-foreground => 'black',
-background => 'ivory2')->pack(-side=>'top');
# from to
my ($from, $to, $subj);
my $fr1 = $fmain->Frame( -background => 'gray', -relief=> 'groove', -b
+orderwidth=>2 )->pack( -side => 'top');
$fr1->LabEntry(-label=>'From:',-textvariable=>\$from,-labelPack=>[-sid
+e=>'left'],-width=>30,
-foreground => 'blue',-background => 'white')->pack();
$fr1->LabEntry(-label=>' To :',-textvariable=>\$to,-labelPack=>[-side
+=>'left'],-width=>30,
-foreground => 'blue',-background => 'white')->pack();
my $txtsubj = $fr1->LabEntry(-label=>'Subj:',-textvariable=>\$subj,-la
+belPack=>[-side=>'left'],-width=>30,
-foreground => 'blue',-background => 'white')->pack();
# ,-textvariable=>'perlocean@gmail.com'
# compose
my $fr2 = $fmain->Frame( -background => "ivory2", -relief =>
+'groove',
-borderwidth=>2 )->pack( -side => 'top');
my $text = $fr2->Scrolled('Text',
-scrollbars => 'osoe',
-wrap => 'none',
-foreground => 'blue',
-background => 'white',
-relief=>'flat')->pack();
# send button
my $send = $fmain->Button(
-text => 'Send eMail',
-command => \&sendmail,
-relief => 'groove',
-foreground => 'black',
-background => 'ivory2',
)->pack(-ipadx=>10,-ipady=>5);
$send->bind('<ButtonRelease-1>' => sub {
$mw->messageBox(qw/-icon info -type OK -message/ => "eMail Sent...
+ \@njoy!");
});
# copyleft
my $lbbottom = $mw->Label(-text => "Copyleft to Larry Wall",
-foreground => 'black',
-background => 'ivory2')->pack(-side=>'bottom');
## animation
my $camelanim = $mw->Animation('-format' => 'gif',
-file => Tk->findINC('anim.gif')
);
$mw->Label(-image => $camelanim)->pack(-side=>'bottom');
$camelanim->start_animation(200);
MainLoop;
sub sendmail{
my @message = $text-> get('1.0', 'end');
my $subject = $txtsubj -> get('1.0', 'end');
eval {
my $cc = 'ccmail@domain.com';
my $smtp = Net::SMTP->new('smtp.server', Debug => 1)
or die "connect";
$smtp->mail($from) or die "mail";
$smtp->to($to) or die "to";
# $smtp->to($cc) or die "cc";
$smtp->to($cc) or die "cc";
$smtp->data() or die "data";
$smtp->datasend($subject) or die "subject";
foreach my $line (@message) {
$smtp->datasend("$line\n") or die "datasend";
}
$smtp->dataend() or die "dataend";
$smtp->quit() or die "quit";
};
if ($@) {
die "Message not sent: $@ failed\n";
}
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.