PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Keine Mail werden gesendet



kralle
29.08.2007, 13:36
Hi,

ich habe schon die Forensuche benutzt aber keine Lösung gefunden.

Wenn man sich z.B anmeldet erhält man keine AKtivierugsmail, auch keine Newsletter...

Gibt es eine Möglichkeit das Script über nen Smtp Server die Mail zu verschicken?

Oder was kann man noch machen damit das geht?

Gremlin
29.08.2007, 14:55
Hallo,
wo hostest du denn? Rede dochmal mit dienem Hoster das er die mail() aktiviert. Im VMS gibt es direkt noch keine möglichkeit emails per smtp zu versenden, jedoch kann man sich da eine Erweiterung machen.

Im Forum von kilu.info gibt es z.B. eine solche Funktion zum Download ;)

Gruß
Gremlin

kralle
29.08.2007, 16:16
Der Hoster hat keinen Mailserver.

Kann mir wer das einbauen?

Gremlin
29.08.2007, 17:02
Dann wechsel lieber den hoster xD wenn der nichtmal nen Mailserver hat :rolleyes: das mit dem smtp Mailen ist einfach die Anleitung findest du in o.g. Forum

kralle
29.08.2007, 17:47
WIe geht der Link zu dem Download finde den nicht.

Gremlin
29.08.2007, 17:57
http://www.kilu.info/viewtopic.php?t=1337

kralle
30.08.2007, 13:24
Leider kann man folgende Seite nicht aufrufen:

http://killerfaultier.kilu.de/smtp_mailer.txt

SebbyPHM
30.08.2007, 15:36
mmmh, ich kann die seite schon aufrufen...


function server_parse($socket, $response, $line = __LINE__)
{
$server_response = '';
while (substr($server_response, 3, 1) != ' ')
{
if (!($server_response = fgets($socket, 256)))
{
echo 'Couldn\'t get mail server response codes<br />';
}
}

if (!(substr($server_response, 0, 3) == $response))
{
echo "Ran into problems sending Mail. Response: $server_response<br />";
}
}

function smtpmail($mail_to, $subject, $message, $headers = '')
{
$smtp_host = '';
$smtp_username = '';
$smtp_password = '';
$absender = '';

$message = preg_replace("#(?<!\r)\n#si", "\r\n", $message);
if ($headers != '')
{
if (is_array($headers))
{
if (sizeof($headers) > 1)
{
$headers = join("\n", $headers);
}
else
{
$headers = $headers[0];
}
}
$headers = chop($headers);
$headers = preg_replace('#(?<!\r)\n#si', "\r\n", $headers);
$header_array = explode("\r\n", $headers);
@reset($header_array);

$headers = '';
while(list(, $header) = each($header_array))
{
if (preg_match('#^cc:#si', $header))
{
$cc = preg_replace('#^cc:(.*)#si', '\1', $header);
}
else if (preg_match('#^bcc:#si', $header))
{
$bcc = preg_replace('#^bcc:(.*)#si', '\1', $header);
$header = '';
}
$headers .= ($header != '') ? $header . "\r\n" : '';
}

$headers = chop($headers);
if ($cc) $cc = explode(', ', $cc);
if ($bcc) $bcc = explode(', ', $bcc);
}

if (trim($subject) == '')
{
echo 'No email Subject specified<br />';
}

if (trim($message) == '')
{
echo 'Email message was blank<br />';
}

if( !$socket = @fsockopen($smtp_host, 25, $errno, $errstr, 20) )
{
echo "Could not connect to smtp host : $errno : $errstr<br />";
}

server_parse($socket, "220", __LINE__);

if( !empty($smtp_username) && !empty($smtp_password) )
{
fputs($socket, "HELO " . $smtp_host . "\r\n");
server_parse($socket, "250", __LINE__);

fputs($socket, "AUTH LOGIN\r\n");
server_parse($socket, "334", __LINE__);

fputs($socket, base64_encode($smtp_username) . "\r\n");
server_parse($socket, "334", __LINE__);

fputs($socket, base64_encode($smtp_password) . "\r\n");
server_parse($socket, "235", __LINE__);
}
else
{
fputs($socket, "EHLO " . $smtp_host . "\r\n");
server_parse($socket, "250", __LINE__);
}

fputs($socket, "MAIL FROM: <" . $absender . ">\r\n");
server_parse($socket, "250", __LINE__);

$to_header = '';

$mail_to = (trim($mail_to) == '') ? 'Undisclosed-recipients:;' : trim($mail_to);
if (preg_match('#[^ ]+\@[^ ]+#', $mail_to))
{
fputs($socket, "RCPT TO: <$mail_to>\r\n");
server_parse($socket, "250", __LINE__);
}

@reset($bcc);
if (isset($bcc))
{
while(list(, $bcc_address) = each($bcc))
{
$bcc_address = trim($bcc_address);
if (preg_match('#[^ ]+\@[^ ]+#', $bcc_address))
{
fputs($socket, "RCPT TO: <$bcc_address>\r\n");
server_parse($socket, "250", __LINE__);
}
}
}

@reset($cc);
if (isset($cc))
{
while(list(, $cc_address) = each($cc))
{
$cc_address = trim($cc_address);
if (preg_match('#[^ ]+\@[^ ]+#', $cc_address))
{
fputs($socket, "RCPT TO: <$cc_address>\r\n");
server_parse($socket, "250", __LINE__);
}
}
}

fputs($socket, "DATA\r\n");

server_parse($socket, "354", __LINE__);

fputs($socket, "Subject: $subject\r\n");

fputs($socket, "To: $mail_to\r\n");

fputs($socket, "$headers\r\n\r\n");

fputs($socket, "$message\r\n");

fputs($socket, ".\r\n");
server_parse($socket, "250", __LINE__);

fputs($socket, "QUIT\r\n");
fclose($socket);

return true;
}

kralle
30.08.2007, 16:17
Komisch.

Und was soll ich nun damit?

Ich dachte daist ne ANleitung dabei?

Gremlin
30.08.2007, 16:18
Oo liest du auch die Links die ich gepostet habe? Solltest du mal tun, denn da ist die ANleitung :rolleyes:

kralle
30.08.2007, 16:35
Füge folgendes Script einfach in jede Seite, die Mails verschicken soll ein, oder in ein config-File, das überall includet wird:

http://killerfaultier.kilu.de/smtp_mailer.txt

ändere die variablen: $smtp_host, $smtp_username, $smtp_password und $adsender
Nun kannst du Mails über die Funktion smtpmail() verschicken

P.S. Die smtpmail() Funktion stammt von einem phpbb und wurde leicht modifiziert.

Ja lese ich.

Aber ich finde weder in der functions.lib.php mail() noch in anmelden.php.

Gremlin
30.08.2007, 16:36
in der functions.lib.php kommt die Funktion aus der smtp_mailer.txt rein, und in der content/intern/anmelden.php steht sehr wohl irgendwo mail(), auch in anderen Dateien wirst du noch mail() finden.

Gruß
Gremlin

kralle
30.08.2007, 16:48
Also in der functions...php einfach einfügen irgendwo oben?


ABer in der anmelden.php finde ich das ned auch php coder nicht.

Gremlin
30.08.2007, 17:11
Ja einfach vor ?> einfügen. Wegen anmelden.php wenn da nirgendswo die mail Function drin ist lad das original vms runter es ist drin.... ;)

kralle
30.08.2007, 19:52
<?
// Variabel vordefinieren!
if (!isset($_POST['anmelden'])) $_POST['anmelden'] = "";
if (!isset($_POST['nickname'])) $_POST['nickname'] = "";
if (!isset($_POST['nachname'])) $_POST['nachname'] = "";
if (!isset($_POST['vorname'])) $_POST['vorname'] = "";
if (!isset($_POST['emailadresse'])) $_POST['emailadresse'] = "";
if (!isset($_POST['passwort_1'])) $_POST['passwort_1'] = "";
if (!isset($_POST['passwort_2'])) $_POST['passwort_2'] = "";
if (!isset($_POST['uid_passwort'])) $_POST['uid_passwort'] = "";
if (!isset($_POST['uid'])) $_POST['uid'] = "";
if (!isset($_POST['agb'])) $_POST['agb'] = "";
if (!isset($_POST['newsletter'])) $_POST['newsletter'] = "1";
if (!isset($_POST['paidmails'])) $_POST['paidmails'] = "1";
if (!isset($error)) $error = "";
if (!isset($anmeldeok)) $anmeldeok = "";
if (!isset($ak)) $ak = "";

if ($_POST['anmelden'] == "Jetzt anmelden!") {

// SecVMS change begin
$_GET['nachname'] = addslashes ($_GET['nachname']);
$_GET['vorname'] = addslashes ($_GET['vorname']);
// SecVMS change end

$schnittstelle = mysql_fetch_array(db_query("SELECT * FROM ".$db_prefix."_schnittstelle LIMIT 1")) or die("Userinfo");
$tag = strtotime("".date("m")."/".date("d")."/".date("Y")." 0 hours 0 minutes 0 seconds");
$s_verbrauch = mysql_num_rows(db_query("SELECT * FROM ".$db_prefix."_schnittstelle_anfragen WHERE zeit='".$tag."' and uid='0'"));
// Auf Eingabefehler prüfen
if(!$_POST['nachname'] || !$_POST['vorname'] || !$_POST['emailadresse'] || !$_POST['passwort_1'] || !$_POST['passwort_2'] || !$_POST['uid'] || !$_POST['uid_passwort'] || !$_POST['nickname']) $error .= 'Bitte fülle alle benötigten Felder aus!<br>';
if(!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$",$_POST['emailadresse'])) $error .= 'Der Emailsyntax ist falsch!<br>';
if ($_POST['passwort_1'] != $_POST['passwort_2']) $error .= 'Passwörter stimmen nicht überein!<br>';
if (strlen($_POST['passwort_1']) < 8) $error .= 'Passwortlänge muss min. 8 Zeichen haben<br>';
if (ereg("[^0-9]", $_POST['uid'])) $error .= 'Bei der Klamm Id nur Zahlen!<br>';
if ($_POST['agb'] != "ja") $error .= 'Du musst die AGBs bestädigen!<br>';
if ($_POST['uid'] == $_SESSION['werber']) $error .= 'Du kannst Dich nicht selber werben<br>';
if ($schnittstelle['anfragen_tag'] != 0 and $schnittstelle['anfragen_tag'] <= $s_verbrauch) $error = 'Die Schnittstellenanfragen sind für heute verbraucht!!!<br>';

// User mit der Datenbank abgleichen
if (!$error) {
$nickname = ucfirst($_POST['nickname']);
$nickname_check =db_query ("SELECT `nickname` FROM ".$db_prefix."_userdaten WHERE nickname='".$nickname."'");
$user_check = db_query ("SELECT `uid` FROM ".$db_prefix."_kontodaten WHERE uid='".$_POST['uid']."'");
$mail_check = db_query ("SELECT `emailadresse` FROM ".$db_prefix."_emaildaten WHERE emailadresse='".$_POST['emailadresse']."'");
$black_check= db_query ("SELECT * FROM ".$db_prefix."_userblacklist WHERE uid='".$_POST['uid']."' and zeit >='".time()."'");
$sperre = mysql_fetch_array($black_check);
if ($sperre['zeit'] != 99999999999) {
$sperrtext = 'Du bist für eine Neuanmeldung noch bis <b>'.date("d.m.Y - H:i:s",$sperre['zeit']).'</b> gesperrt!<br>';
} else {
$sperrtext = '<b><i>Du bist für diese Webseite komplett gesperrt!</i></b>';
}
if (mysql_num_rows($user_check)) $error .= 'Du bist bereits bei uns angemeldet!<br>';
if (mysql_num_rows($mail_check)) $error .= 'Diese Emailadresse ist schon im System!<br>';
if (mysql_num_rows($black_check)) $error = $sperrtext;
if (mysql_num_rows($nickname_check)) $error .='Der Nickname ist schon vergeben!<br>';
}

// User beim Betreiber prüfen
if (!$error) {
if ($schnittstelle['anfragen_user'] != 0) db_query("INSERT INTO ".$db_prefix."_schnittstelle_anfragen (zeit,uid) VALUES ('".$tag."','0')");
@require_once ("lib/schittstellen/".$schnittstelle['schnittstelle'].".php");
@uservalidate ($schnittstelle['betreiber_id'],$schnittstelle['betreiber_passwort'],$_POST['uid'],$_POST['uid_passwort']);
if ($error) $error = $trans_ausgabe.'<br>';
}

// User eintragen
if (!$error) {
if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 0) $mailstatus = 0;
if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 0) $mailstatus = 1;
if ($_POST['newsletter'] == 0 and $_POST['paidmails'] == 1) $mailstatus = 2;
if ($_POST['newsletter'] == 1 and $_POST['paidmails'] == 1) $mailstatus = 3;
db_query("INSERT INTO ".$db_prefix."_kontodaten (uid,passwort,status,hinweis,kontostand) VALUES ('".$_POST['uid']."','".md5($_POST['passwort_1'])."','0','','0')");
db_query("INSERT INTO ".$db_prefix."_emaildaten (uid,emailadresse,freigabe_fuer) VALUES ('".$_POST['uid']."','".$_POST['emailadresse']."','".$mailstatus."')");
db_query("INSERT INTO ".$db_prefix."_userdaten (uid,nickname,vorname,nachname,angemeldet_seit) VALUES ('".$_POST['uid']."','".$nickname."','".$_POST['vorname']."','".$_POST['nachname']."','".time()."')");
$ws = db_query("SELECT * FROM ".$db_prefix."_werberdaten WHERE uid='".$_POST['uid']."'");
db_query("INSERT INTO ".$db_prefix."_werberdaten (uid,werber,umsatz,zuordnungszeit) VALUES ('".$_POST['uid']."','".$_SESSION['werber']."','0','".time()."')");
$ak = md5($_POST['uid'].''.time());
db_query("INSERT INTO ".$db_prefix."_aktivierungen (uid,ak) VALUES ('".$_POST['uid']."','".$ak."')");
$email_message = 'Hallo, '.$_POST['nickname'].'
Du hast Dich soeben erfolgreich bei '.$seitenname.' angemeldet.

Bitte aktiviere jetzt Deinen Account, klicke dazu bitte auf den
Aktivierungslink: '.$domain.'/?content=/intern/aktivieren&ak='.$ak.'

----------------------------------------------------------
Kontonummer: '.$_POST['uid'].'
Passwort: '.$_POST['passwort_1'].'
----------------------------------------------------------

Nach der Aktivierung kannst Du dich sofort einloggen und bei
uns teilnehmen.

Mit freundlichen Grüßen
Das '.$seitenname.' Team
';
@mail($_POST['emailadresse'], "$seitenname Accountaktivierung", $email_message, "FROM: $seitenname <$betreibermail>");
$anmeldeok = "true";
}

}

if ($error){
head("Anfeldefehler");
echo '<font color="#cc0000">'.$error.'</font>';
foot();
}
?>

<? if ($anmeldeok != "true") { ?>
<?head("$seitenname - Neuanmeldung");?>
<center><b>Neuanmeldung</b></center>
<table width="100%" cellpadding="3" cellspacing="0" border="0">
<form action="" method="post">
<tr>
<td class="main"><b>Nickname:</b></td>
<td class="main"><input type="text" name="nickname" value="<?=$nickname;?>"></td>
</tr>
<tr>
<td class="main"><b>Nachname:</b></td>
<td class="main"><input type="text" name="nachname" value="<?=$_POST['nachname'];?>"></td>
</tr>
<tr>
<td class="main"><b>Vorname:</b></td>
<td class="main"><input type="text" name="vorname" value="<?=$_POST['vorname'];?>"></td>
</tr>
<tr>
<td class="main"><b>Emailadresse:</b></td>
<td class="main"><input type="text" name="emailadresse" value="<?=$_POST['emailadresse'];?>"></td>
</tr>
<tr>
<td class="main"><b>Klamm Id:</b></td>
<td class="main"><input type="text" name="uid" value="<?=$_POST['uid'];?>"></td>
</tr>
<tr>
<td class="main"><b>Lose-Passwort zur Identifizierung:</b></td>
<td class="main"><input type="password" name="uid_passwort"></td>
</tr>
<tr>
<td class="main">Werber:</td>
<td class="main"><? if($_SESSION['werber'] == 0) {echo '<b>keinen</b>';} else {echo $_SESSION['werber'];}?></td>
</tr>
<tr>
<td class="main"><b>Passwort:</b></td>
<td class="main"><input type="password" name="passwort_1"></td>
</tr>
<tr>
<td class="main"><b>Passwortbestätigung:</b></td>
<td class="main"><input type="password" name="passwort_2"></td>
</tr>
<tr>
<td class="main"><b>Paidmails empfangen:</b></td>
<td class="main"><select name="paidmails"><option value="1" <? if ($_POST['paidmails'] == 1) { echo 'selected';}?>>Ja</option><option value="0" <? if ($_POST['paidmails'] != 1) { echo 'selected';}?>>Nein</option></select></td>
</tr>
<tr>
<td class="main"><b>Newsletter:</b></td>
<td class="main"><select name="newsletter"><option value="1" <? if ($_POST['newsletter'] == "1") { echo 'selected';}?>>Ja</option><option value="0" <? if ($_POST['newsletter'] != "1") { echo 'selected';}?>>Nein</option></select></td>
</tr>
<tr>
<td class="main"><b>AGB`s gelesen und akzeptiert:</b></td>
<td class="main"><select name="agb"><option value="ja" <? if ($_POST['agb'] == "ja") { echo 'selected';}?>>Ja</option><option value="nein" <? if ($_POST['agb'] != "ja") { echo 'selected';}?>>Nein</option></select></td>
</tr>
<tr>
<td class="main" align="center" colspan="2">
Vor dem Anmelden lese bitte die AGB`s!<br><br>
<input type="submit" name="anmelden" value="Jetzt anmelden!">
</td>
</tr>
</form>
</table>
<?foot();?>
<?} else {?>
<?head("$seitenname - Anmeldung erfolgreich!");?>
Deine Anmeldung bei <?=$seitenname;?> war erfolgreich, Du bekommst jetzt eine Email mit Deinen Daten und einen Aktivierungslink.
Sobald Du deinen Account aktiviert hast kannst Du dich bei uns einloggen und diese Seite im vollen Umfang nutzen.<br>
<br>
Bitte beachte dass es auch etwas dauern kann bis die Aktivierungsmail bei Dir ankommt, dieses ist anhängig von Deinem Emailanbieter.<br>
<br>
Mit freundlichen Grüßen<br>
Das <?=$seitenname;?> Team<br>

<?foot();?>
<? } ?>




Das ist der Inhalt der anmelden.php und ich finde da nirgends mail(), bitte markieren sie es fett.

VMS1
30.08.2007, 20:04
Zeile 96

kralle
30.08.2007, 20:07
Original von VMS1
Zeile 96
@mail($_POST['emailadresse'], "$seitenname Accountaktivierung", $email_message, "FROM: $seitenname <$betreibermail>");


WO steht da bitte mail()???

VMS1
30.08.2007, 20:12
Ojeoje.

Aber ich will mal nicht so sein :D:

@mail($_POST['emailadresse'], "$seitenname Accountaktivierung", $email_message, "FROM: $seitenname <$betreibermail>");

Gruß
Marco

kralle
30.08.2007, 20:15
Upps.



Habe immer nach mail() gesucht deshalb nix gefunden. :D :D :D :D


Durch was muss ich das jetzt ersetzen?

das mail durch smtpmail oder?

Gremlin
30.08.2007, 20:29
richtig einfach durch smtpmail() ersetzen^^ :D

kralle
30.08.2007, 20:36
Original von Gremlin
Ja einfach vor ?> einfügen. Wegen anmelden.php wenn da nirgendswo die mail Function drin ist lad das original vms runter es ist drin.... ;)

ALs ich es vor ?> eingefügt habe stand es auf der Startseite dann habe ich es danach eingefügt und in der anmelden.php das mail() durch smtpmail() ersetzt.


Habe es auch in aktivierungslink.php geöändert und dann meine Acc auf warten gestellt und den akivierungslink angefordert lleider kommt da:

Ran into problems sending Mail. Response: 550 5.7.0 Sender address does not belong to logged in user {mp032}
Ran into problems sending Mail. Response: 503 5.5.1 MAIL first {mp032}
Ran into problems sending Mail. Response: 503 5.5.1 MAIL first {mp032}
Ran into problems sending Mail. Response: 502 5.5.2 Unimplemented {mp032}

kralle
30.08.2007, 20:38
Original von kralle

Original von Gremlin
Ja einfach vor ?> einfügen. Wegen anmelden.php wenn da nirgendswo die mail Function drin ist lad das original vms runter es ist drin.... ;)

ALs ich es vor ?> eingefügt habe stand es auf der Startseite dann habe ich es danach eingefügt und in der anmelden.php das mail() durch smtpmail() ersetzt.


Habe es auch in aktivierungslink.php geöändert und dann meine Acc auf warten gestellt und den akivierungslink angefordert lleider kommt da:

Ran into problems sending Mail. Response: 550 5.7.0 Sender address does not belong to logged in user {mp032}
Ran into problems sending Mail. Response: 503 5.5.1 MAIL first {mp032}
Ran into problems sending Mail. Response: 503 5.5.1 MAIL first {mp032}
Ran into problems sending Mail. Response: 502 5.5.2 Unimplemented {mp032}


Das hängt dann mit dem zusammen:

$server_response = '';

Oder?

Aber was muss da rein?

kralle
30.08.2007, 20:49
Läuft nun.

Habe statt .at .net geschrieben.

Danke.

rdtnemo
15.12.2008, 23:36
hallo ich habe auf meinem vserver das poblem das er keinerlei mails versendet.
die mail() funktion funktioniert allerdings mit diversen testscripten einwandfrei nur beim VMS 1.2.3 leider nicht.
habe auch schon versucht die smtp funktion von Kilu einzubauen aber irgendwie hab ich da wohl nen kleinen denkfehler...
bekomme nach dieser anleitung hier im post immer die fehler meldung


Fatal error: Call to undefined function smtpmail() in /var/www/virtual/turbo-lose.de/htdocs/lib/extras.lib.php on line 92ich hoffe ihr könnt mir helfen...
wenn ihr genaueres wissen möchtet dann schreibt es mir ;)

gruss
rdtnemo

Jenny
16.12.2008, 10:26
Laut Deiner Fehlermeldung hat er die smtp funktion nicht eingebaut in der extras.lib.php dementsprechend denke ich hast Du da wohl vergessen das auszutauschen

rdtnemo
16.12.2008, 16:09
ja den verdacht hatte ich auch schon allerdings ist mir momentan nicht klar wo ich da was austauschen muss weil laut anleitung hier sollte ich ja die funktion selber in die functions.lib einbauen und in der extras.lib nur das mail() in smtpmail() ändern was ich tat und dadurch kommt die fehlermeldung zustande...