Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]phpmailer co zrobic aby zadzialalo?
Forum PHP.pl > Forum > Przedszkole
KolegS
Mam problem z tą klasą a mianowicie próbuje to zainstalować ale nie wiem gdzie mam skopiować zawartość plików class.phpmailer.php oraz class.smtp.php, a nie chciałbym sobie czegoś popsuć w ustawieniach serwera, więc jakby ktoś mógł mi powiedzieć gdzie mam to skopiować będę wdzięczny.
strife
Jak to gdzie skopiować, na serwer na którym chcesz używać tych klas. Szukałeś na google opisu tej klasy, bo ja po wpisaniu phpmailer, i kliknięciu na drugi link od góry znalazłem, dokładne objaśnienie jak ta klasa działa mad.gif

http://phpmailer.sourceforge.net/tutorial.html

Pozdrawiam.
KolegS
ja wiem jak ta klasa działa tylko jak sobie to czytałem to nie wiem gdzie trzeba skopiować te dwa pliki czy dopisać do php.ini czy jak?
strife
Cytat(KolegS @ 12.05.2007, 19:27:39 ) *
ja wiem jak ta klasa działa tylko jak sobie to czytałem to nie wiem gdzie trzeba skopiować te dwa pliki czy dopisać do php.ini czy jak?


Nie musisz nic dopisywać ( jeśli nie chcesz ), po prostu kopiujesz sobie całą zawartość ściągniętej klasy do jakiegoś katalogu phpmailer/, a następnie z poziomu php, ją includujesz, czyli tak jak w przykładach na stronie:

  1. <?php
  2. require("phpmailer/class.phpmailer.php"); // 
  3.  
  4. $mail = new PHPMailer();
  5.  
  6. $mail->IsSMTP();  // send via SMTP
  7. $mail->Host  = "smtp1.site.com;smtp2.site.com"; // SMTP servers
  8. $mail->SMTPAuth = true;  // turn on SMTP authentication
  9. $mail->Username = "jswan"; // SMTP username
  10. $mail->Password = "secret"; // SMTP password
  11. // ...
  12. ?>


Teraz już dla Ciebie wszystko jasne ? : ) Sprawdź czy Ci działa, zanim napiszesz odpowiedź.
KolegS
już prawie działa wyskoczyły mi tylko 3 błędy

  1. <?php
  2. Warning: PHPMailer::include_once(class.smtp.php) [function.PHPMailer-include-once]: failed to open stream: No such file or directory in C:Program FilesWebServhttpd-usersphpmailerclass.phpmailer.php on line 460
  3.  
  4. Warning: PHPMailer::include_once() [function.include]: Failed opening 'class.smtp.php' for inclusion (include_path='.;C:php5pear') in C:Program FilesWebServhttpd-usersphpmailerclass.phpmailer.php on line 460
  5.  
  6. Fatal error: Class 'SMTP' not found in C:Program FilesWebServhttpd-usersphpmailerclass.phpmailer.php on line 527
  7. ?>


tu jest coś ze ścieżka i z plikiem class.smtp.php(nie wiem gdzie go umieścić) a z trzecim to już na dobre nie mam pojęcia

a mój plik którym to wysyłam wygląda tak

Kod
<?php
require("class.phpmailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();                                   // send via SMTP
$mail->Host     = "smtp.googlemail.com"; // SMTP servers
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "kolliegs";  // nie wiedziałem co tutaj wpisać więc wpisałem login mailu
$mail->Password = "moje hasło"; // tutaj wpisałem hasło do maila

$mail->From     = "kolliegs@gmail.com";
$mail->FromName = "WITAM";
$mail->AddAddress("mail na który wysyłasz");
$mail->AddReplyTo("kolliegs@gmail.com"); //tutaj też się zastanawiałem co wpisać więc wpisałem maila

$mail->WordWrap = 50;                              // set word wrap
$mail->IsHTML(true);                               // send as HTML

$mail->Subject  =  "FIRST EMAIL";
$mail->Body     =  "This is the <b>HTML body</b>";
$mail->AltBody  =  "This is the text-only body";

if(!$mail->Send())
{
   echo "Message was not sent <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}

echo "Message has been sent";
?>






EDIT:
ok wstawiłem ten plik class.smtp.php do tego samego folderu i teraz wyświetla się coś takiego
  1. <?php
  2. Message was not sent
  3.  
  4. Mailer Error: Language string failed to load: from_failedkolliegs@gmail.com
  5. ?>
Sokrates
Cytat(strife @ 12.05.2007, 19:32:29 ) *
...czyli tak jak w przykładach na stronie:

  1. <?php
  2. require("phpmailer/class.phpmailer.php"); // 
  3. .....
  4. $mail->Password = "secret"; // SMTP password
  5. ?>



Cytat(KolegS @ 12.05.2007, 20:25 )
...a mój plik którym to wysyłam wygląda tak

  1. <?php
  2. require("class.phpmailer.php");
  3.  
  4. $mail = new PHPMailer();
  5.  
  6. $mail->IsSMTP(); 
  7. ...........
  8. if(!$mail->Send())
  9. {
  10.  echo "Message was not sent <p>";
  11.  echo "Mailer Error: " . $mail->ErrorInfo;
  12.  exit;
  13. }
  14.  
  15. echo "Message has been sent";
  16. ?>



A ja mam praktycznie identyko w kodzie a mimo wszytko nie dziala
tzn pisze ze wyslal maila (jak zakomentuje$mail->IsSMTP();) ale nie dochodzi nic,
a jak nie zakomentuje tego to wyswietla Time out , nie mozna polaczyc sie z hostem
a probowalem juz na o2, wp, i interii.

Wiecej na ten temat mozna przeczytac na tym forum w tym poscie.

CO do pytania kolegi "KolegS" to z tego co wiem, do poprawnego dzialania phpmailera
trzeba skopiowac caly katalog "phpmailer" wraz zawartoscia na serwer i podac w skrypcie sciezke do niego
Nie jestem pewny co do praw do katalogu "phpmailer" i wszystkich w nim zawartych, chyba maja byc na 744.
To powinno pomoc.
Moja konfiguracje pliku kozystajacego z PHPmailera mozesz podejzec w linku wyzej.

Pozdrawaim...
Moze znajdzie sie ktos kto zna odpowiedz namoje pytanie?
smile.gif
KolegS
pobawiłem się trochę próbując to naprawić teraz mój plik do wysyłania wygląda tak
Kod
<?
require("class.phpmailer.php");
$mail = new PHPMailer();

$mail->PluginDir = "phpmailer/";
$mail->From = "kolliegs@gmail.com";
$mail->FromName = "phpMailer tester";
$mail->Host = "smtp.googlemail.com"; // adres serwera SMTP
$mail->Mailer = "smtp";
$mail->Username = "kolliegs@gmail.com";
$mail->Password = "MOJE HASŁO";
$mail->SMTPAuth = true;
$mail->SetLanguage("en", "phpmailer/language/");

$mail->Subject = "Mail testowy";

// w zmienną $text_body wpisujemy treść maila
$text_body = "Cześć, chyba phpMailer działa \n\n";
$text_body .= "Na zawsze Twój, \n";
$text_body .= "PHPMailer";

$mail->Body = $text_body;
// adresatów dodajemy poprzez metode 'AddAddress'
$mail->AddAddress("Mail na który wysyłasz","Ja");

if(!$mail->Send())
{
    echo "There has been a mail error <br>";
    echo $mail->ErrorInfo."<br>";
    exit;
}

echo "mail sent <br>";

?>


ale generuje to błąd
Kod
There has been a mail error
The following From address failed: kolliegs@gmail.com

a rozmieszczenie plików wygląda tak
proba.php (phpmailer)
cała klasa phpmailer(phpmailer/phpmailer)
Sokrates
Jak dobrze zrozumielem rozmieszczenie plikow to sciezki w pliku proba.php
powinny wygladac tak:
  1. <?php
  2.  
  3. require("phpmailer/class.phpmailer.php");
  4.  
  5. ?>


Pozdrawiam...
KolegS
YES! YES! YES!
udało się już wiem czemu mi nie działało a mianowicie ten skrypt nie obsługuje gmail to dlatego.
Jakby ktoś był ciekawy jak to zrobiłem to jest to bardzo proste(korzystałem ze strony http://www.php.webpacket.net/artykuly.php?...l=11&id=316)
więc wziąłem i skopiowałem z tamtąd wszystko po kolei więc wyszedł mi taki kod
Kod
<?
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->PluginDir = "phpmailer/";
$mail->From = "login@domena.pl";  //nasz e-mail
$mail->FromName = "autor";  //autor e-maila
$mail->Host = "smtp.domena.pl";  //adres serwera SMTP
$mail->Mailer = "smtp";
$mail->Username = "login";  //login do konta SMTP
$mail->Password = "haslo";  /hasło do konta SMTP
$mail->SMTPAuth = true;
$mail->SetLanguage("pl", "phpmailer/language/");  //jezyk
$mail->Subject = "tytul";  //tytul e-maila
$mail->Body = 'tresc';  //tresc e-maila
$mail->AddAddress("odbiorac@domena.pl","odbiorca"); //najpierw e-mail odbiorcy, a potem nazwa
$mail->ClearAddresses();
$mail->ClearAttachments();
?>

potem pouzupełniałem te pola odpowiednimi rzeczami
i wyszło mi coś takiego
Kod
<?php
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->PluginDir = "phpmailer/";
$mail->From = "kolegs4@wp.pl";  //nasz e-mail
$mail->FromName = "kolegs4@wp.pl";  //autor e-maila
$mail->Host = "smtp.wp.pl";  //adres serwera SMTP
$mail->Mailer = "smtp";
$mail->Username = "kolegs4";  //login do konta SMTP
$mail->Password = "MOJE HASŁO";  //hasło do konta SMTP
$mail->SMTPAuth = true;
$mail->SetLanguage("pl", "phpmailer/language/");  //jezyk
$mail->Subject = "phpmailer";  //tytul e-maila
$mail->Body = 'Próba wysłania maila za pomocą phpmailer';  //tresc e-maila
$mail->AddAddress("Mail na który wysyłasz","Nazwa osoby do której piszesz"); //najpierw e-mail odbiorcy, a potem nazwa
if(!$mail->Send())
    {
    echo 'E-mail został wysłany';
    }
else
    {
    echo 'E-mail nie mógł zostać wysłany, przyczyna :'. $mail->ErrorInfo; //wyświetla błędy
    }
$mail->ClearAddresses();
$mail->ClearAttachments();
?>

Niby fajnie więc odpalam a tam wyskakuje takie coś
Kod
E-mail nie mógł zostać wysłany, przyczyna :

więc się zacząłem zastanawiać jaka jest przyczyna skoro jej nie podał więc myślę próbuje coś zmieniać i ciągle odświeżam potem wchodzę na skrzynkę pocztową a tam kupa maili musiałem je pousuwać.
Mimo tego że wyświetla taki komunikat działa a to można łatwo usunąć usuwając wykrzynik (!) który znajduje się w funkcji warunkowej if należy to tylko usunąć a ja się męczyłem i chyba ze 15 wiadomości sobie wysłałem.

Jeśli komuś nie działa ta klasa niech pisze do mnie PW a ja pomoge
uli
Ja bym jednak usunął maile, userów i hasło biggrin.gif:D:D Może być z tego niezły pasztecik biggrin.gif
KolegS
w sumie to i tak tylko jeden z tych maili jest ważny bo drugi został założony tylko do prób wysyłania maili za pomocą tej funkcji a hasło było wymyślone na szybko więc raczej nie pomogłoby
huliomix
nie wiem czemu wi wywala błąd:E-mail nie mógł zostać wysłany, przyczyna :Błšd SMTP: Następujšcy odbiorcy sš nieprawidłowi: hulio1983@op.pl ;(
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.