Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> skrypt do wysylania maili nie dziala
jacek811
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 11.04.2003

Ostrzeżenie: (0%)
-----


Witam, mam skrypt do wysylania e-maili , tylko ze cos w nim nie dziala ...
[php:1:895a48bc69]
<?php
require_once 'Mail.php';

# twój serwer smtp
$params['host'] = 'smtp.wp.pl';

# dodatkowe parametry połączenia (opcjonalne):
# $params['port'] = 25;
# jeśli serwer wymaga autentykacji:
# $params['auth'] = false;
# $params['username'] = '';
# $params['password'] = '';

# wszelkie nagłówki...
$headers['Subject'] = 'To jest temat';
$headers['From'] = 'jacek@wp.pl';

$body = 'oto jakiś spam....';

# jeśli adresat jest jeden wystarczy
# $recipients = 'user@domena.pl';
$recipients = array('jacek811@wp.pl', 'jacek811@wp.pl');

$mail = Mail::factory('smtp', $params);

if (PEAR::isError($mail)) {
print $mail->getMessage();
} else {
# sio w Internet!
$error = $mail->send($recipients, $headers, $body);
if (PEAR::isError($error)) {
print $error->getMessage();
} else {
print 'mail został wysłany.';
}
}

?>[/php:1:895a48bc69]

a błąd ktory sie wyswietla to:
Kod
Fatal error: Undefined class name 'mail' in E:usrstronatestMail.php on line 24

Prosilbym o pomoc w rozwiazaniu tego problemu ...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Chewolf
post
Post #2





Grupa: Zarejestrowani
Postów: 335
Pomógł: 0
Dołączył: 15.11.2003

Ostrzeżenie: (0%)
-----


A twój serwer obsługuje Mail() questionmark.gif :-)
Go to the top of the page
+Quote Post
yono
post
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 20.04.2003
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


Twój serwer albo serwer, z którego korzystasz może nie obsługiwać funkcji mail(), głownie jest wyłączana ona z powodu spamu, jaki można dzięki niej wykonać. Wsytarczy przecież wystarczy ją umieścić w pętli i iterować przez 1000:P


--------------------
YoNo
Go to the top of the page
+Quote Post
jacek811
post
Post #4





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 11.04.2003

Ostrzeżenie: (0%)
-----


Jeśli się nie myle to ten skrypt powinien właśnie ominąć potrzebe posiadania sendmaila na serwerze ...
Go to the top of the page
+Quote Post
Indianin
post
Post #5





Grupa: Zarejestrowani
Postów: 247
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Hamburg / Darlowo

Ostrzeżenie: (0%)
-----


Cytat
usrstronatestMail.php on line 24
Go to the top of the page
+Quote Post
Cudi
post
Post #6


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

Ostrzeżenie: (0%)
-----


Cytat
Cytat
usrstronatestMail.php on line 24

Cytat
require_once 'Mail.php';

Próba rekurencyjnego includowania pliku ? laugh.gif


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
jacek811
post
Post #7





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 11.04.2003

Ostrzeżenie: (0%)
-----


Moze ktos zechce pomodz w rozwiazaniu problemu :?:
Go to the top of the page
+Quote Post
essey
post
Post #8





Grupa: Zarejestrowani
Postów: 118
Pomógł: 5
Dołączył: 9.07.2003
Skąd: Wołów/Wrocław

Ostrzeżenie: (0%)
-----


a moze skozystaj z takiego skryptu:

[php:1:78ba441641]<?php
/* adresaci */
$do = "Marysia <marysia@example.com>" . ", " ; // zwróc uwagę na przecinek
$do .= "Kasia <kasia@example.com>";

/* temat */
$temat = "Przypomnienie o urodzinach w Sierpniu";

/* wiadomość */
$wiadomosc = '
<html>
<head>
<title>Przypomnienie o urodzinach w Sierpniu</title>
</head>
<body>
<p>Te urodziny będziemy świętować w Sierpniu!</p>
<table>
<tr>
<th>Osoba</th><th>Dzień</th><th>Miesiąc</th><th>Rok</th>
</tr>
<tr>
<td>Jan</td><td>3.</td><td>Sierpnia</td><td>1970</td>
</tr>
<tr>
<td>Szymon</td><td>17.</td><td>Sierpnia</td><td>1973</td>
</tr>
</table>
</body>
</html>
';

/* Aby wysłać e-mail w formacie HTML, należy ustawić nagłówek Content-type. */
$naglowki = "MIME-Version: 1.0rn";
$naglowki .= "Content-type: text/html; charset=iso-8859-1rn";

/* dodatkowe nagłówki */
$naglowki .= "From: Przypominacz o urodzinach <urodziny@example.com>rn";

$naglowki .= "Cc: archiwum_mailingu@example.comrn";
$naglowki .= "Bcc: kontrola_mailingu@example.comrn";

/* a teraz wyślij */
mail($do, $temat, $wiadomosc, $naglowki);
?>[/php:1:78ba441641]


(zaczerpnięte z manuala php ;P)
Go to the top of the page
+Quote Post
jacek811
post
Post #9





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 11.04.2003

Ostrzeżenie: (0%)
-----


Tak, tylko ta funkcja wymaga Mail() na serverze, a skrypt ktory podałem na górze nie wymaga ...
Go to the top of the page
+Quote Post
dob
post
Post #10





Grupa: Zarejestrowani
Postów: 166
Pomógł: 0
Dołączył: 30.01.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Kiedys to znalazłem na forum - i działa , w pliku z którego chcesz wysłac includujesz ten kod (uzupełniając go wczesniej)
a potem wywołujesz funkcje :
smtp_mail(do kogo, temat, wiadomosc)

[php:1:51e9a44861]<?php
$smtp_host = ''; // Adres smtp np. smtp.wp.pl
$smtp_user = ''; // Użytkownik serwera smtp
$smtp_pass = ''; // Hasło
$email = ''; // Adres od którego przychodzą maile

/* Funkcja do wysyłania maili bez użycia funkcji mail(), znaleziona w forum phpBB... */
function smtp_mail($mail_to, $subject, $message) {
global $smtp_host, $smtp_user, $smtp_pass, $email;

if($mail_to == '')
$error = 'Nie podałeś adresu odbiorcy!';
if(trim($subject) == '')
$error = 'Nie podałeś tematu wiadomości!';
if(trim($message) == '')
$error = 'Wiadomość jest pusta!';
if(!$socket = pfsockopen($smtp_host, 25, $errno, $errstr, 20))
$error = 'Nie mogę się połączyć z serwerem SMTP!';

if(!empty($error)){
echo "<B>Błąd: </B>$error<BR>n";
return false;
}

server_parse($socket, '220');

if(!empty($smtp_user) && !empty($smtp_pass)){
fputs($socket, 'EHLO '.$smtp_host."rn");
server_parse($socket, '250');
fputs($socket, "AUTH LOGINrn");
server_parse($socket, '334');
fputs($socket, base64_encode($smtp_user)."rn");
server_parse($socket, '334');
fputs($socket, base64_encode($smtp_pass)."rn");
server_parse($socket, '235');
}
else{
fputs($socket, 'HELO '.$smtp_host."rn");
server_parse($socket, '250');
}

fputs($socket, 'MAIL FROM: <' . $email . ">rn");
server_parse($socket, '250');

$mail_to_array = explode(',', $mail_to);


$to_header = 'To: ';
@reset($mail_to_array);

foreach($mail_to_array as $mail_to_address){
$mail_to_address = trim($mail_to_address);

if (preg_match('/[^ ]+@[^ ]+/', $mail_to_address)) {
fputs( $socket, "RCPT TO: <$mail_to_address>rn" );
server_parse($socket, '250');
}
$to_header .= (($mail_to_address != '') ? ', ' : '')."<$mail_to_address>";
}

$message = preg_replace("/(?<!r)n/si", "rn", $message);

fputs($socket, "DATArn");
server_parse($socket, "354");
fputs($socket, "Subject: $subjectrn");
fputs($socket, "$to_headerrn");
fputs($socket, "From: ktośtamrn");
fputs($socket, "$headersrnrn");
fputs($socket, "$messagern");
fputs($socket, ".rn");
server_parse($socket, '250');
fputs($socket, "QUITrn");
fclose($socket);

return true;
}
function server_parse($socket, $response) {
while (substr($server_response,3,1)!=' ') {
if(!($server_response=fgets($socket, 256))) {
die('Nie mogę pobrać kodów zwróconych przez serwer.');
}
}
if(!(substr($server_response, 0, 3) == $response)) {
die('Wystąpił problem z wysyłaniem maili. Serwer zwrócił komunikat:
'.$server_response);
}
}

?>[/php:1:51e9a44861]


--------------------
Go to the top of the page
+Quote Post
pwa
post
Post #11





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 9.07.2003
Skąd: krakow

Ostrzeżenie: (0%)
-----


no a jak napisac skrypt do wysylania maila z zalacznikiem bo mail() nie obsluguje tego (aby nie trzebab bylo sie logowac do skrzynki tylko anonima wyslac) questionmark.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 06:36