Solved

Emial cgi messed up

Posted on 2002-04-03
6
194 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

 
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

How our DevOps Teams Maximize Uptime

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us. Read the use case whitepaper.

Question has a verified solution.

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

Suggested Solutions

This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
This article will show, step by step, how to integrate R code into a R Sweave document
Learn the basics of modules and packages in Python. Every Python file is a module, ending in the suffix: .py: Modules are a collection of functions and variables.: Packages are a collection of modules.: Module functions and variables are accessed us…
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

733 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