Many thanks to Bob, Olivier, Claude, and Andinus. I learned from all your 
comments, and I got the Net::SMTP working! 

Rick

> On Jul 9, 2023, at 8:03 AM, Bob Kardell <bobkard...@yahoo.com> wrote:
> 
> One thing to check from experience - make sure hostgator does not block 
> outbound SMTP ports.  Many do to prevent spam.  I spent hours trying to 
> configure Net::SMTP on a different host only to discover the code was working 
> but the email was being blocked.   If hostgator received it it may be because 
> it was only a mailbox inside of hostgator.
> 
> Just a thought,
> 
> Bob 
> 
>> On Jul 8, 2023, at 8:52 PM, Claude Brown via beginners <beginners@perl.org> 
>> wrote:
>> 
>> Hi Rick,
>> 
>> We use Net::SMTP to send emails via SendGrid.  They require a user/pass 
>> authentication over SSL and I wonder if that is what is going wrong in your 
>> case.  The other thing worth doing is checking the return-value of each SMTP 
>> call as something may be going wrong silently.
>> 
>> Below is a fragment of our code that does (a) authentication and (b) checks 
>> each value.  I hope it assists.
>> 
>> Cheers,
>> 
>> Claude.
>> 
>> use strict;
>> use Carp;
>> use Net::SMTP;
>> 
>> use constant SMTP_HOST => 'smtp.sendgrid.net';
>> use constant SMTP_PORT => 465;
>> use constant SMTP_USER => 'the-username';
>> use constant SMTP_PASS => 'the-password';
>> use constant SMTP_TIMEOUT => 15;
>> use constant SMTP_DEBUG => 0;
>> 
>> my $smtp = Net::SMTP->new(
>>       Host => SMTP_HOST,
>>       Port => SMTP_PORT,
>>       Timeout => SMTP_TIMEOUT,
>>       SSL => 1,
>>       Debug => SMTP_DEBUG);
>> 
>> my $fromAddr = 'whowe...@somehwere.com';
>> my $toAddr = 'whoe...@somewhere.com';
>> my $theBody = 'the mail headers and body of the email';
>> 
>> $smtp->auth(SMTP_USER, SMTP_PASS) or confess "SMTP auth: " . 
>> $smtp->message();
>> $smtp->mail($fromAddr)            or confess "SMTP mail: " . 
>> $smtp->message();
>> $smtp->to($toAddr)                or confess "SMTP to: " . $smtp->message();
>> $smtp->data()                     or confess "SMTP data: " . 
>> $smtp->message();
>> $smtp->datasend($theBody)         or confess "SMTP datasend: " . 
>> $smtp->message();
>> $smtp->dataend()                  or confess "SMTP dataend: " . 
>> $smtp->message();
>> $smtp->quit()                     or confess "SMTP quit: " . 
>> $smtp->message(); 
>> --
>> Claude.
>> 
>> 
>> -----Original Message-----
>> From: p...@reason.net <p...@reason.net> 
>> Sent: Sunday, July 9, 2023 10:41 AM
>> To: Perl Beginners <beginners@perl.org>
>> Subject: Re: configuring Net::SMTP
>> 
>> CAUTION: This email originated from outside of the organization. Do not 
>> click links or open attachments unless you recognize the sender and know the 
>> content is safe.
>> 
>> Thanks, Andinus. This is useful information. — Rick
>> 
>>> On Jul 8, 2023, at 10:11 AM, Andinus <andi...@nand.sh> wrote:
>>> 
>>> 
>>> Hello Rick,
>>> 
>>> Hostgator might be able to provide you more information regarding why
>>> the email delivery is failing. I'm not very familiar with mail stuff.
>>> 
>>> You can also try NET::SMTP->new(Debug => 1) and send an email, it might
>>> provide useful info.
>>> 
>>> Maybe this answer on stackoverflow might be helpful
>>> https://stackoverflow.com/a/10008814
>>> 
>>> Have a good day!
>>> 
>>> Rick T @ 2023-07-08 08:37 -07:
>>> 
>>>> I have two subroutines (below) in a program that uses Net::SMTP. I’ve
>>>> recently moved my site from FutureQuest.net <http://futurequest.net/>
>>>> to Hostgator.com <http://hostgator.com/>, and this part of my program
>>>> has stopped working. The first routine sends an analysis of a test to
>>>> me at Reason.net <http://reason.net/>, and the second send a score to
>>>> several addresses associated with the student. On my new host at
>>>> Hostgator both fail to do this. (One of the “technicians” at Hostgator
>>>> said he found my email, so one or both likely arrived at
>>>> webmas...@hostgator.com <mailto:webmas...@hostgator.com>.)
>>>> 
>>>> I am not trained in computer tech; I’m just a 78 year old high school
>>>> teacher who bought a few books on perl, so I don’t really understand
>>>> how to fill in the many variable assignments that make up most of
>>>> these two routines. Instead I took guesses and tried stuff to see
>>>> what would happen. If any of you have suggestions or corrections, I’d
>>>> be grateful!
>>>> 
>>>> Rick Triplett
>>>> 
>>>> FIRST SUBROUTINE:
>>>> 
>>>> sub email_analysis {    # to LibertyLearning for score posting and analysis
>>>>  my $n_max = shift;
>>>>  my @analysis = define_analysis($n_max);
>>>> 
>>>>  my $subject_line
>>>>      = "$pf{percent_correct_final} $pf{name_full} $course_file\n";
>>>> 
>>>>  # Send administration an email of statistical analysis
>>>>  my $to            = 'socra...@reason.net';
>>>>  my $from          = 'webmas...@libertylearning.com';
>>>>  my $site          = 'libertylearning.com';
>>>>  my $smtp_host     = 'mail.libertylearning.com';
>>>> 
>>>>  my $smtp  = Net::SMTP->new( $smtp_host, Hello => $site );
>>>>  $smtp->mail($from);
>>>>  $smtp->to($to);
>>>>  $smtp->data();
>>>>      $smtp->datasend("From: webmaster\@LibertyLearning.com\n");
>>>>      $smtp->datasend("To: $to\n");
>>>>      $smtp->datasend("Date: $pf{ date_ended }\n");
>>>>      $smtp->datasend("Subject: $subject_line\n");
>>>>      $smtp->datasend("\n");
>>>>      $smtp->datasend("$student_id\n");
>>>>      $smtp->datasend("$pf{percent_correct_final}\n");
>>>>      $smtp->datasend("squandered: $pf{percent_squandered}\%\n");
>>>>      $smtp->datasend("if tried: $pf{if_tried}\%\n");
>>>>      $smtp->datasend("string_of_wrongs: $pf{string_of_wrongs}\n");
>>>>      foreach (@analysis) {$smtp->datasend("$_\n")};
>>>>  $smtp->dataend();
>>>>  $smtp->quit;
>>>>  return;
>>>> }
>>>> 
>>>> SECOND SUBRUTINE:
>>>> 
>>>> sub email_mentors {
>>>>  my $message   = shift;
>>>>  my $to            = 'socra...@reason.net'; #was my $to = shift;
>>>>  my $from  = 'webmas...@libertylearning.com';
>>>>  my $site  = 'libertylearning.com';
>>>>  my $smtp_host = 'mail.LibertyLearning.com';
>>>> 
>>>>  my $smtp      = Net::SMTP->new( $smtp_host, Hello => $site );
>>>>  $smtp->mail($from);
>>>>  $smtp->to($to);
>>>>  $smtp->data();
>>>>      $smtp->datasend("From: no_reply\@LibertyLearning.com\n");
>>>>      $smtp->datasend("To: $to\n");
>>>>      $smtp->datasend("Date: $pf{ date_ended }\n");
>>>>      $smtp->datasend("Subject: Test Results\n");
>>>>      $smtp->datasend("\n");
>>>>      $smtp->datasend("$message\n");
>>>>  $smtp->dataend();
>>>>  $smtp->quit;
>>>> 
>>>>  return;
>>>> }
>> 
>> 
>> --
>> To unsubscribe, e-mail: beginners-unsubscr...@perl.org
>> For additional commands, e-mail: beginners-h...@perl.org
>> http://learn.perl.org/
>> 
>> 
> 


--
To unsubscribe, e-mail: beginners-unsubscr...@perl.org
For additional commands, e-mail: beginners-h...@perl.org
http://learn.perl.org/


Reply via email to