473,738 Members | 6,332 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Perl Send email

1 New Member
hi
Im new to Perl.
Im trying to write a program to send an e-mail via my cgi script. I tried various options - MIME::Lite, Sendmail, Mail::Sender, and none seem to work.
I get no error message in the Server Log file, but I dont receive an e-mail either. I suspect that it cant establish a connection to the SMTP server. Is there a way of knowing what communication happens with the SMTP server. The code I use is as below:


Thanks for your help.
Amy

Expand|Select|Wrap|Line Numbers
  1. #!C:\Perl\bin\perl.exe
  2. use CGI::Carp qw(fatalsToBrowser);
  3.  
  4.  use Mail::Sender;
  5.  
  6.  use Net::SMTP;
  7.  
  8.  print "Content-type: text/html\n\n";
  9.  
  10.  my $relay = "xxx.xxx.edu";
  11.  my $smtp = Net::SMTP->new($relay)
  12.     || die "Can't open mail connection: $!";
  13.     my $to='xxx\@cs.xxx.edu';
  14.     my $from='xxx\@cs.xxx.edu';
  15.  
  16.     $smtp->mail($from);
  17.         $smtp->to($to);
  18.  
  19.         $smtp->data();
  20.         $smtp->datasend("To: $to\n");
  21.         $smtp->datasend("From: $from\n");
  22.         $smtp->datasend("Subject: $subject\n");
  23.         $smtp->datasend("\n");
  24.  
  25.         foreach $body (@body) {
  26.             $smtp->datasend("$body\n");
  27.         }
  28.  
  29.         $smtp->dataend();
  30.     $smtp->quit();
  31.  
  32.  
  33.  
  34.  
  35.  open my $DEBUG, ">> debugfile.txt"
  36.                  or die "Can't open the debug file: $!\n";
  37.  
  38.  $sender = new Mail::Sender
  39.   {smtp => 'mail.cs.xxx.edu', from => 'xxx@cs.xxx.edu'};
  40.  $sender->MailFile({to => 'xxx@cs.xxx.edu',
  41.   subject => 'Here is the file',
  42.   msg => "I'm sending you the list you wanted.",
  43.   debug => $DEBUG,
  44.   debug_level=>3,
  45.   authid=>'xxx',
  46.   authpwd=>'pwd'
  47.  });
  48.    $sender->SendEnc;
  49.  
  50.   $sender->Close;
  51.  
Nov 19 '08 #1
18 8788
Ganon11
3,652 Recognized Expert Specialist
Try Mail::Send; it's the module my professor suggests for e-mailing with Perl. Here's a short sample:

Expand|Select|Wrap|Line Numbers
  1. use Mail::Send;
  2. my $mail = Mail::Send->new;
  3. $mail->to('joe@example.com');
  4. $mail->subject('Hey Joe');
  5. my $fh = $mail->open();
  6. print $fh "Hey Joe, what's up?";
  7. $fh->close;
Nov 19 '08 #2
eWish
971 Recognized Expert Contributor
Mail::Sendmail is also a nice choice.

--Kevin
Nov 20 '08 #3
happyse27
236 New Member
Hi Sirs,

I am using the codes above and it did not work. Used Email::send and not mail::send module as perl package manager did not have that.

Is it smtp or what problem.. Is there any sample? Thanks in advance.


Best Rgds,
Andrew


Expand|Select|Wrap|Line Numbers
  1.  
  2. #!/usr/bin/perl -w
  3. #!c:/perl/bin/perl.exe
  4.  
  5.  
  6. use Email::Send; 
  7. my $mail = Mail::Send->new; 
  8. $mail->to('joe@example.com'); 
  9. $mail->subject('Hey Joe'); 
  10. my $fh = $mail->open(); 
  11. print $fh "Hey Joe, what's up?"; 
  12. $fh->close; 
  13.  
  14.  
Html error
========
Internal Server Error
The server encountered an internal error or misconfiguratio n and was unable to complete your request.

Please contact the server administrator, admin@Andrew.so lar and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


apache error log
============
[Thu Dec 11 14:13:52 2008] [error] [client 127.0.0.1] (OS 3)The system cannot find the path specified. : couldn't spawn child process: D:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/emailsend6.pl

apache access log
=============
127.0.0.1 - - [11/Dec/2008:14:13:51 +0800] "GET /cgi-bin/emailsend6.pl HTTP/1.1" 500 538

perl script testing in perl/bin
=============== =====
C:\Perl\bin>per l -c d:\emailsend6.p l
d:\emailsend6.p l syntax OK
Dec 11 '08 #4
KevinADC
4,059 Recognized Expert Specialist
wrong shebang line?

#!/usr/bin/perl -w
#!c:/perl/bin/perl.exe

the second one should be first, unless you actually have perl installed at usr/bin on your Windows box.
Dec 11 '08 #5
numberwhun
3,509 Recognized Expert Moderator Specialist
@happyse27
You need to fix your code. You are calling one module and then specifying another in the constructor:

Expand|Select|Wrap|Line Numbers
  1. use Email::Send; 
  2. my $mail = Mail::Send->new; 
  3.  
My suggestion is to read the Email::Send page at cpan.org and see if they have anything regarding logging.

Regards,

Jeff
Dec 11 '08 #6
happyse27
236 New Member
Hi all,

This code didnt work either...

same problem of internal server error...

same logs.

kindly advise...


Thanks,
Andrew

Expand|Select|Wrap|Line Numbers
  1. #!c:/perl/bin/perl.exe 
  2.  
  3.  
  4.  
  5.    use Mail::Sender::Easy qw(email);   
  6.  
  7.  
  8.  
  9.     email({
  10.  
  11.         'from'         => 'andrew@inovaventure.com',
  12.  
  13.         'to'           => 'happse@hotmail.com',
  14.  
  15.         'cc'           => 'your_pal@ddre.ss',
  16.  
  17.         'subject'      => 'Perl is great!',
  18.  
  19.         'priority'     => 2, # 1-5 high to low
  20.  
  21.         'confirm'      => 'delivery, reading',
  22.  
  23.         'smtp'         => '192.168.2.111',
  24.  
  25.         'port'         => 26,
  26.  
  27.         'auth'         => 'LOGIN',
  28.  
  29.         'authid'       => 'andrew',
  30.  
  31.         'authpwd'      => 'andrew2100',
  32.  
  33.         '_text'        => 'Hello *World* :)',    
  34.  
  35.         '_html'        => 'Hello <b>World</b> <img src="cid:smile1" />',
  36.  
  37.         '_attachments' => {
  38.  
  39.             'smiley.gif' => {
  40.  
  41.                 '_disptype'   => 'GIF Image',
  42.  
  43.                 '_inline'     => 'smile1',
  44.  
  45.                 'description' => 'Smiley',
  46.  
  47.                 'ctype'       => 'image/gif',    
  48.  
  49.                 'file'        => '/home/foo/images/smiley.gif',
  50.  
  51.             },
  52.  
  53.             'mydata.pdf' => {
  54.  
  55.                 'description' => 'Data Sheet',  
  56.  
  57.                 'ctype'       => 'application/pdf',
  58.  
  59.                 'msg'         => $pdf_guts,
  60.  
  61.             },
  62.  
  63.         },
  64.  
  65.     }) or die "email() failed: $@";
  66.  
Dec 12 '08 #7
eWish
971 Recognized Expert Contributor
You are missing some important data here.

Expand|Select|Wrap|Line Numbers
  1. use strict;
  2. use warnings;
These are essential because the error you are saying is to vague. It could be many different things that are causing it. Without some error checking and syntax checking it is that much harder.

Read this for some potential help for your problem.


--Mork
Dec 13 '08 #8
happyse27
236 New Member
hi Sir,

The below code is working well as minimal codes... cheers...

Btw, how do I find free public smtp server since this is internal server ip with vpn??


Thanks again,
Andrew

Expand|Select|Wrap|Line Numbers
  1.  
  2. #!c:/perl/bin/perl.exe -w 
  3.  
  4.    use strict; 
  5.    use warnings;  
  6.  
  7.    use Mail::Sender::Easy qw(email); 
  8.  
  9.     print "Content-type: text/plain\n\n";
  10.  
  11.  
  12.     email({
  13.         #from email address need to change
  14.         'from'         => 'andrew@inova.com',
  15.         'to'           => 'happse@hotmail.com',
  16.         'cc'           => 'your_pal@ddre.ss',
  17.         'subject'      => 'Perl is great!',
  18.         'priority'     => 2, # 1-5 high to low
  19.         'confirm'      => 'delivery, reading',
  20.         'smtp'         => '192.168.2.111',
  21.         'port'         => 25,
  22.         #'auth'         => 'LOGIN',
  23.         'authid'       => 'andrew@inovaventure.com',
  24.         'authpwd'      => 'andrew2100',
  25.         '_text'        => 'Hello *World* :)',    
  26.         #'_html'        => 'Hello <b>World</b> <img src="cid:smile1" />',
  27.         #'_attachments' => {
  28.             #'smiley.gif' => {
  29.                 #'_disptype'   => 'GIF Image',
  30.                 #'_inline'     => 'smile1',
  31.                 #'description' => 'Smiley',
  32.                 #'ctype'       => 'image/gif',    
  33.                 #'file'        => '/home/foo/images/smiley.gif',
  34.             #},
  35.             #'mydata.pdf' => {
  36.                 #'description' => 'Data Sheet',  
  37.                 #'ctype'       => 'application/pdf',
  38.                 #'msg'         => $pdf_guts,
  39.             #},
  40.         #},
  41.     }) or die "email() failed: $@";
  42.  
  43.  
Dec 14 '08 #9
happyse27
236 New Member
Hi All,

This is the more complete codes with attachment sent successfully... Cheers...


Thanks,
Andrew

Expand|Select|Wrap|Line Numbers
  1. #!c:/perl/bin/perl.exe -w 
  2.  
  3.    use strict; 
  4.    use warnings;  
  5.  
  6.    use Mail::Sender::Easy qw(email); 
  7.  
  8.     print "Content-type: text/plain\n\n";
  9.  
  10.  
  11.     email({
  12.         'from'         => 'andrew@inovaventure.com',
  13.         'to'           => 'happse@hotmail.com',
  14.         'cc'           => 'your_pal@ddre.ss',
  15.         'subject'      => 'Perl is great!',
  16.         'priority'     => 2, # 1-5 high to low
  17.         'confirm'      => 'delivery, reading',
  18.         'smtp'         => '192.168.2.111',
  19.         'port'         => 25,
  20.         #'auth'         => 'LOGIN',
  21.         'authid'       => 'andrew',
  22.         'authpwd'      => 'andrew2100',
  23.         '_text'        => 'Hello *World5* :)',    
  24.         '_html'        => 'Hello <b>World</b> <img src="cid:smile1" />',
  25.         '_attachments' => {
  26.             'smiley.gif' => {
  27.                 '_disptype'   => 'GIF Image',
  28.                 '_inline'     => 'smile1',
  29.                 'description' => 'Smiley',
  30.                 'ctype'       => 'image/gif',    
  31.                 'file'        => 'D:/program files/Apache Software 
  32.  
  33. Foundation/Apache2.2/htdocs\smiley.gif',
  34.             },
  35.             #'mydata.pdf' => {
  36.                 #'description' => 'Data Sheet',  
  37.                 #'ctype'       => 'application/pdf',
  38.                 #'msg'         => $pdf_guts,
  39.             #},
  40.         },
  41.     }) or die "email() failed: $@";
  42.  
Dec 14 '08 #10

Sign in to post your reply or Sign up for a free account.

Similar topics

1
4496
by: mhawkins19 | last post by:
I have a form built and on the onclick event I validate all of the fields and then if the form is ok, on the submit event I run a javascript function to set a cookie and download a file from the current window. I have a cgi script provided by my web host to send the contents of the form through email but they only show me how to use the cgi script to send email through the submit event of the form. ie. <form name="downloadform"...
9
4308
by: Bob Jones | last post by:
We have developed a commercial ASP.net application (personal nutrition management and tracking); we want to send smtp email from within it. For our development box, we use WinXP Pro, IIS 5.5, VisualStudio2002, VB as programing language. Our test/development version of the web app as hosted on our "localhost" works fine; our "Default SMTP Virtual Server" is running (per the IIS console).
2
2339
by: Ron | last post by:
hi guys, I am trying to send email using smtpMail. I can send emails inside the organization, but out of the organization I get an error "The server rejected one or more recipient addresses. The server response was: 550 5.7.1 Unable to relay for ........" now I tried to add username and password for the server to relay but it is still not working. this is the example i used:
3
4559
by: Gerard | last post by:
Hello I have created a windows service to monitor a database, it starts some checks when a timer elapses. The checks send emails depending on their findings. My issue is that when I created a windows application it worked fine, however I need to use a service as I don't want to rely on a user being logged in. The errors I get are: Index #:System.Web.HttpException: Could not access 'CDO.Message' object. --->...
2
336
by: ucasesoftware | last post by:
i start a process to send email via Outlook I have succes to build the email text, objet, sender... but i want to automate the "send"... i don't want my users to click on Send email button... is it possible ?
3
9740
by: =?Utf-8?B?SHVnaA==?= | last post by:
Hi There, I use follow code to send email inside VB.NET 2005. It does not work well. Error message of "Failure sending email" would occue. However, email was sent out sometimes. I am confused and please help. Thanks in advance. Hugh
16
4751
by: =?Utf-8?B?Q2hlZg==?= | last post by:
I can use outlook2003 to send email,but I cann't use this code below to send email. Please help me to test this code and instruct me how to solve this problem in detail. software environment: VS2005 + XP.-- I have disabled firewall hardware enviornmnet:telcom's modem connects hub,hub connects two computers.。-- I also tried to connect computer to modem directly,but I can
7
1697
by: Cecil1984 | last post by:
hi guys, could any one help me how to write perl script to send email in unix system. thank you for any helping.
4
1955
by: shailendra deshpande | last post by:
right now i have only pain html page.and i want to send email through it using javascript plz. anybody tell me how to send email from plain html page using javascript. thanks in advance Shailendra Deshpande
0
8968
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9334
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
9259
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
9208
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
8208
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
6750
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4569
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
3279
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
2744
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.