Code Comments

Programming Forum and web based access to our favorite programming groups.
For Programmers: Free Programming Magazines | New: Database administration forum
Registration is free! Edit your profileCalendarFind other membersFrequently Asked QuestionsSearch -> 
Post New Thread











Thread
Author

Web mail script
I have a simple mail script designed to use from command line.
I want create a simple web interface to use this script as remotely
hosted webscript, from webhost.
The script contains two files- Data File.dat(which holds the list of
email addresses, where the mail has to be sent;
the addresses are separated by new lines); and Message template
File.template(this file contains the message template to be sent.)
Need some help and advices.
thanks
------------------------

#!/usr/bin/perl -w

#user configuration begin#

$mailprg = "/usr/sbin/sendmail"; 		#path to your mail program
$delay = 0.25; 					#delay in seconds
$from = 'Coname<somename@domain.com>'; 		#from address in your mail
$subject = 'Trial send'; 			#subject of newsletter. u can add the spl
code $USERNAME$
$maildata = "mail.dat";				#mail address file
$msgtemplate = "message.template";		#message template file

#user configuration end#

if(@ARGV){
$i = 0;
while($ARGV[$i]){
if($ARGV[$i] eq "--help"){
print "Command Line Options:\n\n";
print "-t\tTest how the message will be formatted\n";
print "-d\tData file listing the email addresses\n";
print "-m\tMessage template file\n";
print "-s\tSubject\n";
print "-f\tFrom address. Quote for security reasons\n";
die "\nMore information at indiWiz.com\n";
}
elsif($ARGV[$i]=~/^-/){
$arr = substr($ARGV[$i],1,1);
if($arr eq "d"){
$maildata = $ARGV[$i+1];
$i+=2;
}
elsif($arr eq "m"){
$msgtemplate = $ARGV[$i+1];
$i+=2;
}
elsif($arr eq "t"){
$testflag = 1;
$i++;
}
elsif($arr eq "s"){
$subject = $ARGV[$i+1];
$i+=2;
}
elsif($arr eq "f"){
$from = $ARGV[$i+1];
$i+=2;
}
else{
die "Wrong argument!";
}
}
}
}

open TEMPLATE, $msgtemplate || die "Cannot open template file!\n";
while(<TEMPLATE> ){
$msg .= $_;
}
close TEMPLATE || die "Cannot close template file!\n";

open MAILFILE,"$maildata" || die "Cannot open data file!\n";
while(<MAILFILE> ){
chomp($_);
@arr = split(/\@/,$_);
$arr[0] = ucfirst($arr[0]);
$tmp = $msg;
$tmp =~ s/\$USERNAME\$/$arr[0]/g;
$subject =~ s/\$USERNAME\$/$arr[0]/g;
$temp = "To: $arr[0]<$_>\n";
$temp .= "From: $from\n";
$temp .= "Subject: $subject\n\n\n";
$temp .= $tmp;
if($testflag){
print $temp;
last;
}
else{
open MAILPRG,"|$mailprg -t" || die "Cannot open mail program!\n";
print MAILPRG $temp;
close MAILPRG || die "Cannot close mailprogram!\n";
if($delay < 0){
$delay = 1;
sleep $delay;
}
elsif($delay < 1){
select(undef,undef,undef,$delay);
}
else{
sleep $delay;
}
print $_,"\n";
}
}
close MAILFILE || die "Cannot close data file!\n";

Report this thread to moderator Post Follow-up to this message
Old Post
trend5
04-26-05 01:57 PM


Re: Web mail script
trend5 wrote:

> Need some help and advices.

What advice are you asking for?  Your post did not show
1) what the program generated when you ran it
2) what you expected it to do.

> if(@ARGV){
> 	$i = 0;
> 	while($ARGV[$i]){
> 		if($ARGV[$i] eq "--help"){ print;print;print }
> 		elsif($ARGV[$i]=~/^-/){
> 		  $arr = substr($ARGV[$i],1,1);
> 		  if   ($arr eq "d"){$maildata = $ARGV[$i+1];	$i+=2;}
> 		  elsif($arr eq "m"){$msgtemplate = $ARGV[$i+1]; $i+=2;}
> 		  elsif($arr eq "t"){$testflag = 1;		$i++;}
> 		  elsif($arr eq "s"){$subject = $ARGV[$i+1];	$i+=2;}
> 		  elsif($arr eq "f"){$from = $ARGV[$i+1];	$i+=2;}
> 		  else{		    die "Wrong argument!";	}
> 		}
> 	}
> }

That's a mighty ugly bunch of C code there.
When creating Perl programs, you should program in Perl, not C.

my $Usage = <<EOM;
Command Line Options:
-t	Test how the message will be formatted
-d	Data file listing the email addresses
-m	Message template file
-s	Subject
-f	From address. Quote for security reasons

More information at indiWiz.com
EOM
if (@ARGV and $ARGV[0] =~ /^-/) {
$_ = shift;
die $Usage if $_ eq '--help';
my $opt = substr $_,1,1;
if    ($opt eq "d")	{ $maildata = shift;	}
elsif ($opt eq "m")	{ $msgtemplate = shift;	}
elsif ($opt eq "t")	{ $testflag = 1;	}
elsif ($opt eq "s")	{ $subject = shift;	}
elsif ($opt eq "f")	{ $from = shift;	}
else  { die "Invalid option '$_'\n",$Usage;	}
}
die "Unexpected command line arguments '@ARGV'\n",$Usage if @ARGV;

> open TEMPLATE, $msgtemplate || die "Cannot open template file!\n";

open TEMPLATE, $msgtemplate or
die "Cannot open template file $msgtemplate - $!\n";

>     $subject =~ s/\$USERNAME\$/$arr[0]/g;

That will work only once.  You need to keep the original around.

(my $newsubject = $subject) =~ s/\$USERNAME\$/$arr[0]/g;

If you have any more questions, specific ones regarding perl, then
post them to the comp.lang.perl.misc newsgroup.
(comp.lang.perl is defunct; superceded by comp.lang.perl.misc)

-Joe

Report this thread to moderator Post Follow-up to this message
Old Post
Joe Smith
04-28-05 08:57 AM


Re: Web mail script
"Joe Smith" <joe@inwap.com> wrote in message
news:AdGdnf-e6ui87O3fRVn-pg@comcast.com...
>
> (comp.lang.perl is defunct; superceded by comp.lang.perl.misc)
>

Why?



Report this thread to moderator Post Follow-up to this message
Old Post
PC
05-02-05 01:56 AM


Re: Web mail script
PC wrote:
> "Joe Smith" <joe@inwap.com> wrote in message
> news:AdGdnf-e6ui87O3fRVn-pg@comcast.com...
> 
>
> Why?

The original comp.lang.perl was split into several new newsgroups.
This was voted on many many years ago.
There is a lot more traffic in comp.lang.perl.misc than comp.lang.perl .
-Joe

Report this thread to moderator Post Follow-up to this message
Old Post
Joe Smith
05-02-05 01:56 AM


Sponsored Links




Last Thread Next Thread Next
Search this forum -> 
Post New Thread

PERL Programming archive

Show a Printable Version Send to friend Email This Page to Someone! subscribe to this thread Receive updates to this thread
Computer Consultants
Programming Jobs
Visual Basic Controls
SQL Server Programming
Webservices
Java Security
Visual Studio
C# Programming
Visual J++
Software engineering
Open source Software
Perl Programming
PHP Programming
ASP Programming
ASP .NET Programming
Visual Basic Programming
Windows Scripting Host
Java Programming
Java Help
Java Beans
VBScript
Cobol
MAC Applications
Unix Programming
Forum Jump:
All times are GMT. The time now is 07:32 PM.

 
Free MCSE Braindumps | Real Estate Topics

Programming forum archive

Copyrights CodeComments.com 2004 - 2006

Powered by vBulletin Copyright 2000-2006 Jelsoft Enterprises Limited.