Solved

Emial cgi messed up

Posted on 2002-04-03
6
189 Views
Last Modified: 2013-12-25
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);
}
0
Comment
Question by:Bob Stone
  • 3
  • 2
6 Comments
 
LVL 16

Accepted Solution

by:
maneshr earned 200 total points
ID: 6916875
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
 
LVL 24

Expert Comment

by:SunBow
ID: 6916878
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
 
LVL 24

Expert Comment

by:SunBow
ID: 6916883
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
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 24

Expert Comment

by:SunBow
ID: 6916889
<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
 
LVL 9

Author Comment

by:Bob Stone
ID: 6918204
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
 
LVL 16

Expert Comment

by:maneshr
ID: 6918458
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

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

In this tutorial I will aim to show you how simple is making a small application in WhizBase, how to add, remove and update data in the DB. I will make a small address book application where you can add, browse, update and remove addresses. I wi…
This article will show, step by step, how to integrate R code into a R Sweave document
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

803 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question