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/