Poszukuje skryptu do wysylania mejli bez uzycia funkcji mail(). Znalazlem cos takiego na innym forumi http://www.forum.kasart98.com/viewtopic.php?t=188 Wszystko byloby spoko tylko ze cos nie chce chodzic a ja za bardzo niewiem dlaczego. Wlasnie dokladnie zainstalowalem forum phpbb i tam tez mialem taki problem bo pracuje na lokalu i jest serwer smtp z uwierzytelnianiem no i wlasnie wysylanie mejli z phpbb chodzi tylko jak wpisuje usera i haslo dlatego z standardowej funkcji mail() nie moge skorzystac (chyba ze jest jakis sposob o ktorym niewiem). W kazdym razie zamieszczam kod tej mojej funkcji do wysylanie mejli (jest to przerobione z phpbb). Jezeli ktos mialby chwile i zerknal gdzie robie blad to bym byl bardzo wdzieczny zaznaczam ze jestem poczatkujacy w php... Funkcja ta ma wysylac mejla pod okreslony adres na dzien przed data dzisiejsza. Tylko wlasnie mejl nie chce sie wysylac.
Kod
function wyslij()
{
$polacz = mysql_connect('localhost','user', 'password')
or die ('Nie mozna się połączyć: ' . mysql_error());
$nazwa_bazy = "baza";
mysql_select_db($nazwa_bazy);
$sql = "SELECT post_extra5 FROM phpbb_2posts_text";
$result = mysql_query($sql);
$dzisiaj = date("Y-m-d");
$data = strtotime ("2004-10-01");
echo ("$data <br>");
$data1 = strtotime ("2004-09-30");
echo ("$data1 <br>");
if ($result)
{
while ($row = mysql_fetch_row($result))
{
if ($row[0] != NULL)
{
$data_wpr = strtotime ("$row[0]");
$data_dzis = strtotime ("$dzisiaj");
echo "$data_wpr <br>";
echo "$data_dzis <br>";
$wynik = $data_wpr - $data_dzis;
echo "Wynik: $wynik <br>";
if ( $wynik > 0 && $wynik <= 86400)
{
echo "poszlo<br> ";
//mail("dadada@poczta.onet.pl","Przypomnienie","Masz kontakt jutro :"); //funkcja do wysylania mejli
$smtp_host = "192.168.2.1";
$smtp_username = "user";
$smtp_password = "password";
$email = "adadad@poczta.fm";
$mail_to = "dadada@poczta.onet.pl";
$subject = "Forum";
$message = "Poszlo";
/*Funkcja do wysylania mejli*/
function smtpmail($mail_to, $subject, $message)
{
global $smtp_host, $smtp_username, $smtp_password, $email;
$message = preg_replace("/(?<!\r)\n/si", "\r\n", $message);
if($mail_to == "")
{
echo "Blad: nie podales adresu odbiorcy!<br>\n";
return 0;
}
if(trim($subject) == "")
{
echo "Blad: nie podales tematu wiadomosci!<br>\n";
return 0;
}
if(trim($message) == "")
{
echo "Blad: Wiadomosc jest pusta!<br>\n";
return 0;
}
$mail_to_array = explode(",", $mail_to);
if( !$socket = fsockopen($smtp_host, 25, $errno, $errstr, 20))
{
echo "Nie moge polaczyc z serwerem SMTP! : $errno : $errstr<BR>\n";
}
server_parse($socket, "220");
if( !empty($smtp_username) && !empty($smtp_password))
{
fputs($socket, "HELO " . $smtp_host . "\r\n"); server_parse($socket, "250");
fputs($socket, "AUTH LOGIN\r\n"); server_parse($socket, "334"); fputs($socket, base64_encode($smtp_username) . "\r\n");
server_parse($socket, "334");
fputs($socket, base64_encode($smtp_password) . "\r\n");
server_parse($socket, "235");
}
else
{
fputs($socket, "HELO " . $smtp_host . "\r\n"); server_parse($socket, "250");
}
fputs($socket, "MAIL FROM: <" . $email . ">\r\n");
server_parse($socket, "250");
//wysylamy adresy odbiorcow naszej wiadomosci
$to_header = "To: ";
@reset($mail_to_array);
while(list( , $mail_to_address) = each( $mail_to_array))
{
$mail_to_address = trim($mail_to_address);
if (preg_match('/[^ ]+\@[^ ]+/', $mail_to_address))
{
fputs( $socket, "RCPT TO: <$mail_to_address>\r\n" );
server_parse( $socket, "250" );
}
$to_header.=(($mail_to_address!='') ? ', ' : '')."<$mail_to_address>";
}
//wysylamy cala reszte
fputs($socket, "DATA\r\n");
server_parse($socket, "354");
fputs($socket, "Subject: $subject\r\n");
fputs($socket, "$to_header\r\n");
fputs($socket, "$headers\r\n\r\n");
fputs($socket, "$message\r\n");
fputs($socket, ".\r\n");
server_parse($socket, "250");
fputs($socket, "QUIT\r\n");
fclose($socket);
//mail zostal wyslany
return TRUE;
}
function server_parse($socket, $response)
{
while (substr($server_response,3,1)!= ' ')
{
if(!($server_response=fgets($socket, 256)))
{
die("Couln't get server response codes");
}
}
if(!(substr($server_response, 0, 3)==$response))
{
die("Ran into problems sending Mail: $server_response");
}
}
$mailto = "dadada@poczta.onet.pl";
$subject = "Forum";
$message = "Poszlo";
if (smtpmail($mailto,$subject,$message))
{
echo "Wiadomosc zostala wyslana";
}
else
{
echo "Wiadomosc nie zostala wyslana";
}
}
else
{
echo "nie poszlo <br>";
}
}
else {}
}
}
// mail("adres","temat","tresc","From: adres");
mysql_close($polacz);
}
wyslij();
?>
{
$polacz = mysql_connect('localhost','user', 'password')
or die ('Nie mozna się połączyć: ' . mysql_error());
$nazwa_bazy = "baza";
mysql_select_db($nazwa_bazy);
$sql = "SELECT post_extra5 FROM phpbb_2posts_text";
$result = mysql_query($sql);
$dzisiaj = date("Y-m-d");
$data = strtotime ("2004-10-01");
echo ("$data <br>");
$data1 = strtotime ("2004-09-30");
echo ("$data1 <br>");
if ($result)
{
while ($row = mysql_fetch_row($result))
{
if ($row[0] != NULL)
{
$data_wpr = strtotime ("$row[0]");
$data_dzis = strtotime ("$dzisiaj");
echo "$data_wpr <br>";
echo "$data_dzis <br>";
$wynik = $data_wpr - $data_dzis;
echo "Wynik: $wynik <br>";
if ( $wynik > 0 && $wynik <= 86400)
{
echo "poszlo<br> ";
//mail("dadada@poczta.onet.pl","Przypomnienie","Masz kontakt jutro :"); //funkcja do wysylania mejli
$smtp_host = "192.168.2.1";
$smtp_username = "user";
$smtp_password = "password";
$email = "adadad@poczta.fm";
$mail_to = "dadada@poczta.onet.pl";
$subject = "Forum";
$message = "Poszlo";
/*Funkcja do wysylania mejli*/
function smtpmail($mail_to, $subject, $message)
{
global $smtp_host, $smtp_username, $smtp_password, $email;
$message = preg_replace("/(?<!\r)\n/si", "\r\n", $message);
if($mail_to == "")
{
echo "Blad: nie podales adresu odbiorcy!<br>\n";
return 0;
}
if(trim($subject) == "")
{
echo "Blad: nie podales tematu wiadomosci!<br>\n";
return 0;
}
if(trim($message) == "")
{
echo "Blad: Wiadomosc jest pusta!<br>\n";
return 0;
}
$mail_to_array = explode(",", $mail_to);
if( !$socket = fsockopen($smtp_host, 25, $errno, $errstr, 20))
{
echo "Nie moge polaczyc z serwerem SMTP! : $errno : $errstr<BR>\n";
}
server_parse($socket, "220");
if( !empty($smtp_username) && !empty($smtp_password))
{
fputs($socket, "HELO " . $smtp_host . "\r\n"); server_parse($socket, "250");
fputs($socket, "AUTH LOGIN\r\n"); server_parse($socket, "334"); fputs($socket, base64_encode($smtp_username) . "\r\n");
server_parse($socket, "334");
fputs($socket, base64_encode($smtp_password) . "\r\n");
server_parse($socket, "235");
}
else
{
fputs($socket, "HELO " . $smtp_host . "\r\n"); server_parse($socket, "250");
}
fputs($socket, "MAIL FROM: <" . $email . ">\r\n");
server_parse($socket, "250");
//wysylamy adresy odbiorcow naszej wiadomosci
$to_header = "To: ";
@reset($mail_to_array);
while(list( , $mail_to_address) = each( $mail_to_array))
{
$mail_to_address = trim($mail_to_address);
if (preg_match('/[^ ]+\@[^ ]+/', $mail_to_address))
{
fputs( $socket, "RCPT TO: <$mail_to_address>\r\n" );
server_parse( $socket, "250" );
}
$to_header.=(($mail_to_address!='') ? ', ' : '')."<$mail_to_address>";
}
//wysylamy cala reszte
fputs($socket, "DATA\r\n");
server_parse($socket, "354");
fputs($socket, "Subject: $subject\r\n");
fputs($socket, "$to_header\r\n");
fputs($socket, "$headers\r\n\r\n");
fputs($socket, "$message\r\n");
fputs($socket, ".\r\n");
server_parse($socket, "250");
fputs($socket, "QUIT\r\n");
fclose($socket);
//mail zostal wyslany
return TRUE;
}
function server_parse($socket, $response)
{
while (substr($server_response,3,1)!= ' ')
{
if(!($server_response=fgets($socket, 256)))
{
die("Couln't get server response codes");
}
}
if(!(substr($server_response, 0, 3)==$response))
{
die("Ran into problems sending Mail: $server_response");
}
}
$mailto = "dadada@poczta.onet.pl";
$subject = "Forum";
$message = "Poszlo";
if (smtpmail($mailto,$subject,$message))
{
echo "Wiadomosc zostala wyslana";
}
else
{
echo "Wiadomosc nie zostala wyslana";
}
}
else
{
echo "nie poszlo <br>";
}
}
else {}
}
}
// mail("adres","temat","tresc","From: adres");
mysql_close($polacz);
}
wyslij();
?>
Funkcja ta ma wysylac mejla pod okreslony adres na dzien przed data dzisiejsza. To chodzi (dzieki za pomoc kess), tylko wlasnie mejl nie chce sie wysylac. I neiwiem why? Po odpaleniu skryptu pokazuje sie cos takiego:
Cytat
1096581600
1096495200
943916400
1095026400
Wynik: -151110000
nie poszlo
1095112800
1095026400
Wynik: 86400
poszlo
Nie moge polaczyc z serwerem SMTP! : 0 :
Warning: Supplied argument is not a valid File-Handle resource in /var/www/skrypty/data.php on line 126
Couln't get server response codes
1096495200
943916400
1095026400
Wynik: -151110000
nie poszlo
1095112800
1095026400
Wynik: 86400
poszlo
Nie moge polaczyc z serwerem SMTP! : 0 :
Warning: Supplied argument is not a valid File-Handle resource in /var/www/skrypty/data.php on line 126
Couln't get server response codes
Sorki ze taki dlugi kod zamieszczam ale widzialem dluzsze

Pozdro Swaper