Wątek zablokowany 2014-10-17 08:45 przez dzek69.

Wysyłanie maila za pomocą skryptu PHP

0

Mam takie pytanie jak powinna wyglądać część skryptu PHP wysyłająca maila na dany adres maila wiem, że jest funkcja mail, ale ona podobno działa tylko jak ktoś ma postawiony serwer poczty tak mi się przynajmniej zdaje.

0

Było milion razy, jak nie dziesięć milionów.

phpMailer, ściągnij, dodaj do projektu, użyj.

0

No właśnie mam problem z tym frameworkiem Napisałem taki kod

  require("./PHPMailer_v5.1/class.phpmailer.php");
$imie = "tomek";
//$mail = "[email protected]";
$temat = "sdfdsf";
$tresc = "asdfsa  fsadfsdf";
$tresc2 = 'Od: '.$imie."\n".'Email: '.$mail."\n\n".'Tresc: '."\n".$tresc;
 

$mail = new PHPMailer();
 
$mail->PluginDir = "phpmailer/";
 
$mail->Host = "poczta.o2.pl";//adres serwera SMTP
$mail->Username = "[email protected]";//nazwa użytkownika
$mail->Password = "haslo";//nasze hasło do konta SMTP
$mail->SMTPAuth = true;
 
$mail->From = "[email protected]"; //adres naszego konta
$mail->FromName = "2brothers";//nagłówek From
$mail->Mailer = "smtp";
$mail->SetLanguage("pl", "phpmailer/language/");
 
 
$mail->Subject = $_POST['temat'];//temat maila
 
// w zmienną $text_body wpisujemy treść maila
$text_body = $tresc2;
 
$mail->Body = $text_body;
// adresatów dodajemy poprzez metode 'AddAddress'
$mail->AddAddress("[email protected]","Jurek");
 
if(!$mail->Send())
{
 echo "There has been a mail error <br>";
 echo $mail->ErrorInfo."<br>";
}
else
{
 echo "mail sent <br>";
}
 
// Clear all addresses and attachments
$mail->ClearAddresses();
$mail->ClearAttachments();

Żaden błąd się nie pojawia, ale email nie dochodzi.

0

logujesz się na konto o2, a próbujesz wysłać e-mail jako gmail?

0

Zmieniłem

$mail->From = "[email protected]"; //adres naszego konta

na

$mail->From = "[email protected]"; //adres naszego konta 

nie działało potem zmieniełm jeszcze jeden fragment

 $mail->Username = "[email protected]";//nazwa użytkownika

na

$mail->Username = "tomi001";//nazwa użytkownika 

I dalej nie działa

0

a uruchamiasz to gdzie? zdalny host? własny komputer? masz w Netii blokadę domyślnego portu 25, dla o2.pl ustaw jeszcze $mail->Port=587;

nazwa użytkownika to pełny adres e-mail

zmień też końcówkę na coś w stylu:

$test = $mail->Send();
var_dump($test);
if(!$test)
{
 echo "There has been a mail error <br>";
 echo $mail->ErrorInfo."<br>";
}
else
{
 echo "mail sent <br>";
}

i powiedz czy wywala true czy false

0

Zmieniłem to co trzeba i nadal nie wysyła, a skrypt odpalam z mojego localhosta

I to jest dziwne, że od samego początku do teraz skrypt nie wykonywał, żadnej z tych instrukcji

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

Nie wyświetlały się instrukcje w warunku true, ani instrukcje w warunku false.

0

to może masz błąd składniowy, albo inny fatal error (na require), tylko masz wyciszone pokazywanie błędów?

0

Dwa błędy jakie zauważyłem to błędy dotyczące nie mojego skryptu a PHPmailera

[Mon Feb 03 12:10:38 2014] [error] [client 127.0.0.1] PHP Warning:  require_once(phpmailer/class.smtp.php): failed to open stream: No such file or directory in /var/www/programowanie/PHPMailer_v5.1/class.phpmailer.php on line 702
[Mon Feb 03 12:10:38 2014] [error] [client 127.0.0.1] PHP Fatal error:  require_once(): Failed opening required 'phpmailer/class.smtp.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/programowanie/PHPMailer_v5.1/class.phpmailer.php on line 702 

Teraz właśnie zmieniłem linijkę
$mail->PluginDir = "phpmailer/
na
$mail->PluginDir = "PHPMailer_v5.1/";
I dostałem taki błąd

 bool(false)
There has been a mail error 
SMTP Error: Could not authenticate.
0

to wklej jeszcze raz co masz

0
require("./PHPMailer_v5.1/class.phpmailer.php");
$imie = "tomek";
//$mail = "[email protected]";
$temat = "sdfdsf";
$tresc = "asdfsa  fsadfsdf";
$tresc2 = 'Od: '.$imie."\nEmail \n\n".'Tresc: '."\n".$tresc;
 

$mail = new PHPMailer();
 
//$mail->PluginDir = "phpmailer/";
$mail->PluginDir = "PHPMailer_v5.1/";
$mail->Port=587; 
$mail->Host = "poczta.o2.pl";//adres serwera SMTP
$mail->Username = "[email protected]";//nazwa użytkownika
$mail->Password = "haslo";//nasze hasło do konta SMTP
$mail->SMTPAuth = true;
 
$mail->From = "[email protected]"; //adres naszego konta
$mail->FromName = "2brothers";//nagłówek From
$mail->Mailer = "smtp";
$mail->SetLanguage("pl", "PHPMailer_v5.1/language/");

 
$mail->Subject = $temat;//temat maila
 
// w zmienną $text_body wpisujemy treść maila
$text_body = $tresc2;
 
$mail->Body = $text_body;

// adresatów dodajemy poprzez metode 'AddAddress'
$mail->AddAddress("[email protected]","Jurek");

$test = $mail->Send();
var_dump($test);

if(!$test)
{
 echo "There has been a mail error <br>";
 echo $mail->ErrorInfo."<br>";
}
else
{
 echo "mail sent <br>";
}
 
// Clear all addresses and attachments
$mail->ClearAddresses();
$mail->ClearAttachments();
0

popraw login i hasło, poza tym wszystko jest ok (sprawdzałem na koncie o2)

0

Teraz zaczęło działać musiałem zmienić adres mojego maila z [email protected] na inny serwer poczty, a mianowicie na serwer wp.pl

1 użytkowników online, w tym zalogowanych: 0, gości: 1