Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie E-maila za pomocą SMTP, nie korzystając z mail();
Forum PHP.pl > Forum > PHP
MaKaO
Mam pytanie, co w tym skrypcie jest nie tak, że nie chce mi on działać? Czy może jest to wina serwera? Naprawde nie wiem co jest nie tak... Proszę o to 2 funkcje...
[php:1:7469ea9fa5]<?php
$smtpHost = "smtp.host.pl"; //Host
$smtpUser = "user"; //Użytkownik
$smtpPass = "pass"; //Hasło
$mailbox = "mojAdres@skrzynki.pl"; //Adres skrzynki
function smtpMail($to, $subject, $message)
{
$message = preg_replace("/(?<!r)n/si", "rn", $message);
if($to == ""){
echo "<B>Błąd: </B> Nie podałeś adresu odbiorcy!<BR>n";
return 0;
}
if(trim($subject) == ""){
echo "<B>Błąd: </B> Nie podałeś tematu wiadomości!<BR>n";
return 0;
}
if(trim($message) == ""){
echo "<B>Błąd: </B> Wiadomość jest pusta!<BR>n";
return 0;
}
$toArray = explode(",", $to);

if(!$socket = fsockopen($smtpHost, 25, $errno, $errstr, 50)){
echo "Nie mogę się połączyć z serwerem SMTP! : $errno : $errstr<BR>n";
}
serverParse($socket, "220");

if( !empty($smtpUser) && !empty($smtpPass)){
fputs($socket, "EHLO " . $smtpHost . "rn");
serverParse($socket, "250");
fputs($socket, "AUTH LOGINrn");
serverParse($socket, "334");
fputs($socket, base64_encode($smtpUser) . "rn");
serverParse($socket, "334");
fputs($socket, base64_encode($smtpPass) . "rn");
serverParse($socket, "235");
} else {
fputs($socket, "HELO " . $smtpHost . "rn");
serverParse($socket, "250");
}
fputs($socket, "FROM: <" . $mailbox . ">rn");
serverParse($socket, "250");

$toHeader = "To: ";
@reset( $toArray );
while( list( , $toAddress ) = each( $toArray ))
{
$toAddress = trim($toAddress);
if ( preg_match('/[^ ]+@[^ ]+/', $toAddress) )
{
fputs( $socket, " TO: <$toAddress>rn" );
serverParse( $socket, "250" );
}
$toHeader .= ( ( $toAddress != '' ) ? ', ' : '' ) . "<$toAddress>";
}
fputs($socket, "DATArn");
serverParse($socket, "354");
fputs($socket, "Subject: $subjectrn");
fputs($socket, "$toHeaderrn");
fputs($socket, "$headersrnrn");
fputs($socket, "$messagern");
fputs($socket, ".rn");
serverParse($socket, "250");
fputs($socket, "QUITrn");
fclose($socket);

return TRUE;
}
function serverParse($socket, $response)
{
while ( substr($serverResponse,3,1) != ' ' )
{
if( !( $serverResponse = fgets($socket, 256) ) )
{
die("Serwer nie odpowiada.");
}
}

if( !( substr($serverResponse, 0, 3) == $response ) )
{
die("Wystąpiły problemy podczas wysyłania Maila. Response: $serverResponse");
}
}
?>[/php:1:7469ea9fa5]
Widzicie tutaj jakiś problem czy coś? :?
POMOCY!
Teodor
Na pierwszy rzut oka to:
[php:1:a16ea7de26]<?php
fputs($socket, "EHLO " . $smtpHost . "rn");
?>[/php:1:a16ea7de26]
EHLO zamiast HELO

Ale moglbys napisac co odpowiada serwer...


Pozdrawiam
uboottd
Dobrze jest HELO tez moze byc o ile nie chcesz autoryzacji.

Ale
nie FROM: tylko MAIL FROM:
nie To: tylko RCPT TO:
i wypisuj sobie Co ci mowi serwer jak nie mowi tego co sie spodziewasz
MaKaO
Cytat
Nie mogę się połączyć z serwerem SMTP! : 0 :

Warning: fgets(): supplied argument is not a valid File-Handle resource in /data/3129291843/www/web/phpmyadmin/css/poczta.php on line 92
Serwer nie odpowiada.

[php:1:1dd755ac1e]<?php
// Linia 92
if(!($serverResponse = fgets($socket, 256)))
?>[/php:1:1dd755ac1e]
Dalej problem :?
konrad_vme
zobacz tu, był ten sam problem: http://www.vme.g.pl/index.php3?site=forum&...17&INDEXSTART=0
MaKaO
Dzięki za pomoc sprawdzę tą funkcje i zobacze jak działa i spróbuje ją rozbudować jak sie uda :-)
--------------------------------
Sprawdziłem i też nie działa, nie chce się połączyć z smtp tenbit.pl na porcie 25 :?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.