1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

PERL SMTP e-mail help

Discussion in 'Perl' started by gdsoccer11, Jul 2, 2008.

  1. gdsoccer11

    gdsoccer11 New Member

    Hey all,

    I've written a working smtp email script using the NET::SMTP module the only problem is that whenever I use a \n in the message body it fails to place it in the email. Here is the script:

    Code:
    use Data::Dumper;
    use Net::SMTP;
    use strict;
    
    my $to = 'to';
    my $from = 'your name';
    my $subject = "subject";
    my $greeting = "An error has occured";
    my $message = "Error Stats: blah blah blah /n
                              more blah blah";
    my $smtp = Net::SMTP->new('xxx.xxx.x.xxx');    
    $smtp->mail('me@myaddr.com');               
    my $status = $smtp->recipient($to);
    $smtp->data();
    $smtp->datasend("From: $from\n");
    $smtp->datasend("To: $to\n");
    $smtp->datasend("Subject: $subject\n");
    $smtp->datasend("Content-Type: text/html; charset=\"us-ascii\"\n");
    $smtp->datasend("\n");
    $smtp->datasend("$greeting\n\n");
    $smtp->datasend("\n");
    $smtp->datasend("$message");
    $smtp->datasend("\n");
    $smtp->dataend();
    $smtp->quit;
    now like I said that succesfull sends the e-mail if everything is filled in but none of my new lines (and I have like 6 of them) are showing up in the message body.

    Any thoughts?
     
  2. naveen

    naveen New Member

    I see that you've given content type to be text-html, in which case, the newline is defined by the <br> tag and not \n. For \n to be converted to a new line, you need the content type of the email to be set to text-plain.

    Try it out and see if it makes any difference. The rest of your script looks fine.

    HTH
    Naveen
     
  3. pradeep

    pradeep Team Leader

    or try this!

    Code:
    $message =~ s/\n/<br\/>/g;
    
    But Naveen's suggestion is the best!
     
  4. ballroot

    ballroot New Member

    Thanks, works for me too.
     

Share This Page