Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skrypt do wysylania maili nie dziala
Forum PHP.pl > Forum > Gotowe rozwiązania
jacek811
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 ...
Chewolf
A twój serwer obsługuje Mail() questionmark.gif :-)
yono
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
jacek811
Jeśli się nie myle to ten skrypt powinien właśnie ominąć potrzebe posiadania sendmaila na serwerze ...
Indianin
Cytat
usrstronatestMail.php on line 24
Cudi
Cytat
Cytat
usrstronatestMail.php on line 24

Cytat
require_once 'Mail.php';

Próba rekurencyjnego includowania pliku ? laugh.gif
jacek811
Moze ktos zechce pomodz w rozwiazaniu problemu :?:
essey
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)
jacek811
Tak, tylko ta funkcja wymaga Mail() na serverze, a skrypt ktory podałem na górze nie wymaga ...
dob
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]
pwa
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
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-2024 Invision Power Services, Inc.