Emial cgi messed up

I got a prob with this script. It attaches the message to the end of the subject line. It used to work but I edited some stuff and must have messed it up somehow. I wrote this but my knowledge of perl/cgi came out a book and this is one of 3 scripts I've ever written.


#!/usr/local/bin/perl

use CGI ':standard';

sub send_mail {
my($to, $return, $subject, @body)=@_;
open MAIL, "|/usr/vde/bin/sendmail -t";
print MAIL "To: $to\n";
print MAIL "Reply-to: $return\n";
print MAIL "From: $return\n";
print MAIL "Subject: $subject\n - (IP# $theirIPAddress )";
foreach(@body) {
print MAIL "$_\n";
}
close(MAIL);
}
$theirIPAddress=$ENV{'REMOTE_ADDR'};

print header, start_html;




@body=param('body');
if(param('target'))
{

send_mail(param('target'), param('return'), param('subject'), @body);
}
LVL 9
Bob StoneIT GuruAsked:
Who is Participating?
 
maneshrConnect With a Mentor Commented:
stone5150,

"..It attaches the message to the end of the subject line. .."

REPLACE..

print MAIL "Subject: $subject\n - (IP# $theirIPAddress )";

WITH...

print MAIL "Subject: $subject\n - (IP# $theirIPAddress )\n";

Let me know how it goes.
0
 
SunBowCommented:
I dunno, tho' I made better comment not long ago (bad memory).

As I understand it, today, this is rfc issue, not perl. The subject being variable length field requiring special terminator.

I think by 'special', in olden times it was xMit (KB) of two nulls by hitting return twice. So in C or Perl, I'd try first

\n\n

since it is quick, then go look it up (rfc)(or Perl script support site) to see if it was supposed to be real null character or perhaps only a single period on line followed by <cr>

I think it is suggested at about 68 char limit for subject, and 'should be' one single visible line, that can be parsed/scrolled to next/multi-line. With another suggestion for real max

If you don't get far but do get impatient, let me know and I'll check/see if I preserved some of those bookmarks.
0
 
SunBowCommented:
maneshr,
I haven't the time here. If you do, I think there were references in EE for some threads that were discussing legal characters for recipient ("to: ___").
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
SunBowCommented:
<ugh> forgot to leave.
Check out example within last visible open q: on the Topic page:
http://www.experts-exchange.com/cgi/Q.20254607.html

- a couple examples of the syntax for double <CR>'s therein... my ref:

\n\n

terminator (multiline)
0
 
Bob StoneIT GuruAuthor Commented:
I replaced;

print MAIL "Subject: $subject\n - (IP# $theirIPAddress )";

with this;

print MAIL "Subject: $subject - (IP# $theirIPAddress )\n";

and it worked perfectly. Just forgot to close the line or whatever you call it.
0
 
maneshrCommented:
stone5150,

"..and it worked perfectly...."

Excellent!!!

"..Just forgot to close the line or whatever you call it. .."

Glad to know you got the solution you were looking for.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.