I did some playing after I submitted my first question and
came up with this:
sub parse_mail {
my $mail = $_[0];
# print $mail;
open "MAIL","<$mail" || die "Cannot open $mail, $!";
@mailf = <MAIL>;
chomp (@mailf);
my $line;
# foreach $line (@mailf) {
# print "$line\n";
# }
print @mailf;
close MAIL || die "Cannot close $mail, $!";
# return @mailf;
}
The only differences here being:
Removed the parenthasis around the filehandle on the open and
close and added double quotes around the file handle for the
open statement.
This was the last hurdle in getting the entire script to work
and does so now, thanks to everyones help.
I find it odd though. I have dug through the docs that came
with the activestate distro and did not come accross anything
regarding this matter... I did find a couple of closely related
topics, but none that addressed this particular problem I was
having.
I'm sure that my inexperience is to blame.
Here is the entire script just in case you might be interested.
Maybe it might shed the right light on why I was having this
problem.
#!/usr/gnu/bin/perl -w
#
#
######################################################################
+##########
use strict;
no strict "refs";
use Mail::Sender;
my $f2dir = "C:\\windows\\desktop\\tmp\\";
#print "$f2dir\n";
my @names = <$f2dir*.f2mail>;
my @mailf;
my $file;
foreach $file (@names) {
if ( (! -d $file) && ($file =~ /\b\.f2mail/) ) {
parse_mail($file);
}else{
print "Error with $file, $!";
}
sender_mail(@mailf);
file_clean($mailf[3],$mailf[4],$file);
}
######################################################################
+#########
# Begin Subroutines
#
# parse_mail parses the parameter file (*.f2mail) and submits the resu
+lts to
# Mail::Sender for smtp
######################################################################
+#########
sub parse_mail {
my $mail = $_[0];
# print $mail;
open "MAIL","<$mail" || die "Cannot open $mail, $!";
@mailf = <MAIL>;
chomp (@mailf);
my $line;
# foreach $line (@mailf) {
# print "$line\n";
# }
print @mailf;
close MAIL || die "Cannot close $mail, $!";
# return @mailf;
}
######################################################################
+#########
#
# sender_mail calls the Mail:Sender module and prepares for smtp
######################################################################
+#########
sub sender_mail {
my @mailf = @_;
print $mailf[3];
open (BODY,$mailf[3]) || die "Cannot open $mailf[3], $!";
my @body = <BODY>;
close (BODY) || die "Cannot close $mailf[3], $!";
my $sender;
ref ($sender = new Mail::Sender ({
from => $mailf[2], smtp => 'humap.segrest.com'})) || die "Send
+er error: $sender, $Mail::Sender::Error!\n";
ref (($sender->MailFile(
{to => $mailf[0], subject => $mailf[1], msg => "@body", file =
+> $mailf[4]}))) || die "Sender error, $sender, $Mail::Sender::Error!,
+ $!";
return 1;
}
######################################################################
+#########
#
# file_clean unlinks the files specified in the parameter file (*.f2ma
+il) and
# the parameter file itself
######################################################################
+#########
sub file_clean {
my $file;
foreach $file (@_) {
unlink $file || die "Unlink failure: $!";
}
return 1;
}
The many commented out print statement I used for trouble
shooting.
Comments on the code???
Thanks for everyone's help on this.
Bradley
Where ever there is confusion to be had... I'll be there.
-
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.