Sendmail Absender
Jürgen
- html
0 Reiner Rusch0 Rolf r.
0 Jürgen
Hi,
folgendes, ich bin zu dem Schluss gekommen nachdem ich in diesem Forum einiges zum Thema mailto und Formular gelesen habe, dass es besser ist das CGI script sendmail für mein Formular zu verwenden. Hat nach anfänglichen Schwierigkeiten auch sehr gut geklappt nun hätte ich allerdings ein paar Modifikationen und weiss leider nicht wie ich das anstellen soll wäre super wenn mir jemand einen Tip geben würde weil ich leider nicht weiter komme.
Also, in meinem Formular muss der Absender seine E-Mail Adresse eingeben wie krieg ich es hin dass diese Adresse dann beim Verschickten Mail als Absender steht?????? Also im Moment ist es so, wennn ich das Formular abschicke und das verschickte E-Mail dann anschaue steht leider als Absender Nobody drin ist natürlich total unschön grrrr
Hier dass CGI Script sendmail das ich verwende:
#!/usr/bin/perl
$Sendmail_Prog = "/usr/sbin/sendmail";
use CGI;
Hier mein Formular:
$query = new CGI;
@names = $query->param;
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$mailto = $query->param('mailto'); # ---> Empfängeradresse
$returnhtml = $query->param('return'); # ---> URL für Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
$mailtext = "";
foreach(@names) {
$name = $_;
@values = "";
@values = $query->param($name);
if($name ne "mailto" && $name ne "return" && $name ne "subject" && $name ne "delimiter") {
foreach $value (@values) {
$mailtext = $mailtext.$name;
$mailtext = $mailtext.$delimiter;
$mailtext = $mailtext.$value."\n";
}
}
}
open(MAIL,"$Sendmail_Prog -t") print "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);
print "Location: $returnhtml\n\n";
Hier mein Formular:
<html>
<head>
<title>Schmieder Test </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" background="backround-haupt1.gif">
<form action="http://www.aim-online.com/cgi-bin/selfmail.pl" method="post">
<input type="hidden" name="mailto" value="Schmieder@aim-online.com">
<input type="hidden" name="return" value="http://www.juergen- schmieder.de/Thanks.htm">
<input type="hidden" name="delimiter" value=": ">
<input type="hidden" name="subject" value="Support">
<!-- hier beliebige eigene Felder -->
<table width="71%" border="5" cellspacing="3" bgcolor="#000099" height="210" bordercolor="#000099" dwcopytype="CopyTableRow">
<tr>
<td bgcolor="#3366FF" width="40%">
<div align="center"><span class="aufblau">Customer Data</span></div>
</td>
</tr>
<tr>
<td bgcolor="#6699CC" width="40%" height="50">
<div align="center"><span class="textsw">Name</span><br>
<input type="TEXT" name="Name" size="20">
</div>
</td>
</tr>
<tr>
<td bgcolor="#6699CC" width="40%">
<div align="center"><span class="textsw">Company</span><br>
<input type="TEXT" name="Company" size="20">
</div>
</td>
</tr>
<tr>
<td bgcolor="#6699CC" width="40%">
<div align="center"><span class="textsw">Address </span><br>
<input type="TEXT" name="Address" size="20">
</div>
</td>
</tr>
<tr>
<td bgcolor="#6699CC" width="40%">
<div align="center"><span class="textsw">Phone</span> <br>
<input type="TEXT" name="Phone" size="20">
</div>
</td>
</tr>
<tr>
<td bgcolor="#6699CC" width="40%">
<div align="center"><span class="textsw">Fax</span><br>
<input type="TEXT" name="Fax" size="20">
</div>
</td>
</tr>
<tr>
<td bgcolor="#6699CC" width="40%" height="53">
<div align="center"><span class="textsw">Email</span><br>
<input type="TEXT" name="Email" size="20">
</div>
</td>
</tr>
</table>
<p> </p>
<p> </p>
<p>
<input type="submit" name="submit">
<input type="reset" name="reset">
</p>
</form>
</body>
</html>
Vielen Dank schon mal im Vorraus ich habs echt selbst versucht kriegs aber nicht hin
Viele Grüsse Jürgen
Hallo Jürgen,
das geht ganz einfach mit:
-------> E-Mail versenden:
open(MAIL,"$Sendmail_Prog -t") print "Mailprogramm konnte nicht gestartet werden\n";
print MAIL "To: $mailto\n";
print MAIL "From: dein.name@domain.de\n";
print MAIL "Subject: $subject\n\n";
print MAIL "$mailtext\n";
close(MAIL);
bzw. wie im "To"-Feld eine Variable!
Reiner
Hi,
print MAIL "From: dein.name@domain.de\n";
oder auch so:
print MAIL "From: otto <otto@domain.de>";
somit steht als Abs. der Name otto drin den siehst Du dann in Deinem Mailclienten.
...für otto & co also Variablen einsetzen und die Eingabe des Absendernamen als Pflichtfeld machen (Fehlerausgabe wenn nicht ausgefüllt) und noch ein Tipp: mit dem Modul web.pm (siehe xwolf) steht Dir die Funktion isMail() zur Verfügung, damit kannst Du die Eingabe der eMail auf Syntax checken.
Viele Grüße, Rolf
Hi,
danke, jo soweit so gut nur jetzt habe ich leider noch ein Anfäger Prob. wie krieg ich die Email Adresse die der Besucher angeben muss (demnach Variabel) von meinem Formular in das CGI script übergeben.
Ich habe schon gesucht und probiert ohne Ende ich kriegs einfach nicht gebacken. Also ich glaub es scheitert an der Übergabe der Variablen vom Java script zum CGI script hier der Auszug vom Java script
<script language="JavaScript">
function test()
{
var fromaddress = document.forms[0].Email_from.value;
var abc = document.forms[0].Name.value;
if (abc == "")
{
alert("\nPlease enter your name.");
document.forms[0].Name.focus();
return false;
}
....
irgendwie muss ich die jetzt doch ans CGI überbeben? Naja ich habe es mal so probiert ging natürlich nicht.
CGI script:
$Sendmail_Prog = "/usr/sbin/sendmail";
use CGI;
anwenden:
$query = new CGI;
@names = $query->param;
$delimiter = $query->param('delimiter'); # ---> Begrenzerzeichen zwischen name und value
$mailto = $query->param('mailto'); # ---> Empfängeradresse
$returnhtml = $query->param('return'); # ---> URL für Dankeseite
$subject = $query->param('subject'); # ---> E-Mail-Subject
$fromaddress = $query->param('fromaddress'); # ---> E-Adresse vom Besucher eingegeben
$mailtext = "";
Viele Grüsse Jürgen