edgar2005
14.01.2008, 21:06:30
Co należy wpisać w poniższym kodzie, aby zamiast komunikatu
"mail sent" po wysłaniu maila wyświetlała się strona html.
Z góry dziękuje za odpowiedz. Pozdrawiam!
Kod
<?
require("phpmailer/class.phpmailer.php");
$mail = new PHPMailer();
$mail->PluginDir = "phpmailer/";
$mail->From = "NASZE@KONTO"; <b>//adres naszego konta</b>
$mail->FromName = "phpMailer tester";<b>//nagłówek From</b>
$mail->Host = "NASZ.SERWER.SMTP";<b>//adres serwera SMTP</b>
$mail->Mailer = "smtp";
$mail->Username = "tester@KONTO";<b>//nazwa użytkownika</b>
$mail->Password = "HASLO";<b>//nasze hasło do konta SMTP</b>
$mail->SMTPAuth = true;
$mail->SetLanguage("en", "phpmailer/language/");
$mail->Subject = "Mail testowy";<b>//temat maila</b>
// <b>w zmienną $text_body wpisujemy treść maila</b>
$text_body = "Cześć, chyba phpMailer działa \n\n";
$text_body .= "Na zawsze Twój, \n";
$text_body .= "PHPMailer";
$mail->Body = $text_body;
// <b>adresatów dodajemy poprzez metode 'AddAddress'</b>
$mail->AddAddress("jurek@gdziestam.pl","Jurek");
$mail->AddAddress("franek@gdziestam.pl","Franek");
if(!$mail->Send())
echo "There has been a mail error
";
echo $mail->ErrorInfo."
";
// Clear all addresses and attachments
$mail->ClearAddresses();
$mail->ClearAttachments();
echo "mail sent
";
?>
nospor
14.01.2008, 21:13:36
po pierwsze: popraw tytul o znacznik zgodnie z zasadami forum przedszkole
po drugie: wlacz szare komorki.
zamiast: echo "mail sent";
daj: echo "Twoja strona html"; a dokladnie ma tam byc twoj kod html
edgar2005
14.01.2008, 21:38:18
Ale kiedy wpiszę np.
Kod
<html>
<head>
<title>Tytuł<title>
</head>
<body>
....
<img src="obrazek.jpg">
....
</body>
</html>
to w linijce w której jest wstawienie obrazka wywala błąd, to samo dzieje się przy próbie wstawinia tabeli.
Stronę wyświetla dobrze tylko kiedy znajduje się na niej sam tekst.
nospor
14.01.2008, 21:41:00
no ba, bo nie mozna tworzyc takich konstrukcji:
<?php
echo "cos tu apostrof" a tu dalej cos
"; ?>
Powinno byc:
<?php
echo "cos tu apostrof\" a tu dalej cos"; //albo
echo 'cos tu apostrof" a tu dalej cos'; ?>
Ale to wszystko jest manualu w dziale
Napisy czy jakos tak.
A najlepiej zrob tak:
<?php
//tu kod php
//a tu ponizej zamiast walic echo "html" to zamknij php i rozpocznij html
?>
<html>
<head>
<title>Tytuł<title>
</head>
<body>
....
<img src="obrazek.jpg">
....
</body>
</html>
kuba749
14.01.2008, 21:44:24
spróbój zamiast <img src="obrazek.jpg"> tak <img src='obrazek.jpg'>
edgar2005
15.01.2008, 12:43:51
Zrobiłem tak jak poradził mi
nospor (tyle że najpierw wrzuciłem html a dopiero pod nim php)
i sprawdziłem działanie w programie WebServ, wszystko było super.
Ale kiedy wrzuciłem stronę na serwer ovh.org i spróbowałem odpalić pokazał się komunikat:
Kod
Warning: require(phpmailer/class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in /home/p/r/i/prizee-poradnik/www/aaaa/phpdoc/wyslij.php on line 192
Fatal error: require() [function.require]: Failed opening required 'phpmailer/class.phpmailer.php' (include_path='.:') in /home/p/r/i/prizee-poradnik/www/aaaa/phpdoc/wyslij.php on line 192
i nie wysyła maila.
W pliku wyslij.php w lini 192 znajduje się
Kod
require("phpmailer/class.phpmailer.php");
Co może być nie tak. Pozdrawiam!
nospor
15.01.2008, 12:47:50
no a przegrales phpmailer? phpmailer/class.phpmailer.php ?
Do tego samego katalogu co odpalasz wyslij.php ?
edgar2005
15.01.2008, 12:56:35
Tak, folder phpmailer znajduje się w tym samym katalogu co wyślij.php.
Przerzuciłem wszystko tak jak miałem w WebServ, a mimo wszystko przestało działać.
nospor
15.01.2008, 13:06:23
No to dalej:
Czy wyslij.php jest plikiem glownym ktory odpalasz, czy tez moze jest on dopiero includowany przez inny plik, ktory lezy w innym katalogu?
A czy na pewno w katalogu masz phpmailer/class.phpmailer.php? A moze masz: PHPMailer/class.phpmailer.php ? Pamietaj ze wielkosc liter ma duze znaczenie.
edgar2005
15.01.2008, 13:16:03
Rzeczywiście problemem była wielkość liter.
Dziękuje za pomoc. Pozdrawiam!
bodek71
18.01.2008, 13:35:32
podłącze się do tematu w jaki sposób dołączyć kod (phpmailer)do pliku który wykorzystuje biblioteki smart (normalne znaczniki <? /?> nie działają - jest błąd)
poniżej część kodu (tworzy e-mail) który chciałbym zamienić na kod phpmailer
if($dane_ok) {
$zapytanie = mysql_query("INSERT INTO `uzytkownicy` ( `id` , `login` , `haslo` , `plec` , `miejscowosc` , `imie` , `nazwisko` , `email` , `admin` , `active` ) VALUES (0, '$login', '".md5($haslo)."', $plec, '$miejscowosc', '$imie', '$nazwisko', '$email', 0, 0);");
if($zapytanie) {
$zapytanie = mysql_query("SELECT * FROM uzytkownicy WHERE login = '$login';");
$wynik = mysql_fetch_array($zapytanie);
$user_id = $wynik['id'];
$zapytanie = mysql_query("INSERT INTO `poczekalnia` ( `id` , `user_id` , `hash` ) VALUES (0, $user_id, '".(md5($email))."');");
if($zapytanie) {
$zapytanie = mysql_query("SELECT * FROM ustawienia LIMIT 1");
$zmienne = mysql_fetch_array($zapytanie);
$link_aktywacyjny = $zmienne['serwis_url']."_aktywuj,konto/".md5($email).'/';
$tresc = '<!DOCTYPE HTML PUBLIC "-//W3C//Dtd HTML 4.0 transitional//EN">
<html><head><meta http-equiv="Content-Typ!" content="text/html; charset=iso-8859-2"></head>
<body bgcolor="#ffffff"><font face="Arial" style="font-size:13px;" color="#3e3e3e">'.nl2br(($zmienne['email_potwierdzenie'])).'</font></body></html>';
$headers = "Return-Path: <".$zmienne['admin_email'].">\r\n";
$headers = "MIME-Version: 1.0 \r\n";
$headers .= "Content-type: text/html; charset=iso-8859-2 \r\n";
$headers .= 'From: "Administrator" <'.$zmienne['admin_email'].'>\r\n';
$headers .= 'Reply-To: "'.$zmienne['admin_email'].'" \r\n';
$headers .= 'X-Priority: 1\r\n';
$headers .= 'X-MSMail-Priority: High\r\n';
$tresc = strtr($tresc, "\xA5\x8C\x8F\xB9\x9C\x9F", "\xA1\xA6\xAC\xB1\xB6\xBC");
$tresc = str_replace("{login}",$login,$tresc);
$tresc = str_replace("{haslo}",$haslo,$tresc);
$tresc = str_replace("{imie}",$imie,$tresc);
$tresc = str_replace("{link_aktywacyjny}",$link_aktywacyjny,$tresc);
$tresc = str_replace("{serwis_url}",$zmienne['serwis_url'],$tresc);
mail($email,$zmienne['serwis_url']." - Aktywacja konta",$tresc,$headers);
mkdir("uzytkownicy/$login", 0777);
}
}
}
else {
/* ------------------------------------------------------------------- */
$smarty -> assign('login_blad', $login_blad);
if(isset($_POST['login']))
$smarty -> assign('login', $_POST['login']);
$smarty -> assign('haslo_blad', $haslo_blad);
$smarty -> assign('imie_blad', $imie_blad);
if(isset($_POST['imie']))
$smarty -> assign('imie', $_POST['imie']);
$smarty -> assign('nazwisko_blad', $nazwisko_blad);
if(isset($_POST['nazwisko']))
$smarty -> assign('nazwisko', $_POST['nazwisko']);
$smarty -> assign('miejscowosc_blad', $miejscowosc_blad);
if(isset($_POST['miejscowosc']))
$smarty -> assign('miejscowosc', $_POST['miejscowosc']);
$smarty -> assign('email_blad', $email_blad);
if(isset($_POST['email']))
$smarty -> assign('email', $_POST['email']);
/* ------------------------------------------------------------------- */
}
/* ------------------------------------------------------------------- */
$smarty -> display('rejestracja.tpl');
/* ------------------------------------------------------------------- */
?>
jeżeli kolega nospar wyraziłby swoje sugestie z góry dziekuję za pomoc
nospor
18.01.2008, 13:53:36
po pierwsze: uzywaj bbcode!
po drugie: co ty chcesz zrobic? tresc maila masz w szablonie smarty? To uzyj fetch() (wiecej info w manualu smarty)
bodek71
18.01.2008, 14:15:12
w sumie zainteresowałem się phpmailer ponieważ obecny kod we współpracy z qmail na home.pl powoduje
1 odbiorca dostaje e-mail w którym treść jest pomieszana z kodem HTML
2 niezależnie co wipszę w nagłówek FROM i tak odbiorca otrzma list z wpisanym adresem pocztowym mojego konta na home.pl
na tym forum poradzono mi żebym zainstalował phpmailer-a.
ta część kodu jest wycięta z pliku o nazwie rejestracja.inc.php i to ten plik jest odowiedzialny za przetworzenie informacji z formularza i wysłanie pod podany adres linku aktywacyjnego do klienta.
Ponieważ męczę się z tym problemem od miesiąca na różne sposoby zaczynam szukać innych rozwiązań
wiem że jeżeli dołożę kod w znacznikach <? ?> to na stronie wyświetlany jest błąd zastanawiam się jak go dołączyć do pliku rejestracja.inc.php
Cezar708
18.01.2008, 15:05:07
Cytat(bodek71 @ 18.01.2008, 14:15:12 )

1 odbiorca dostaje e-mail w którym treść jest pomieszana z kodem HTML
2 niezależnie co wipszę w nagłówek FROM i tak odbiorca otrzma list z wpisanym adresem pocztowym mojego konta na home.pl
być może Twój problem jest związany z
tym topikiem. Kiedyś też miałem problem z
"treścią przemieszaną z kodem HTML". Poczytaj może Ci się wyjaśni coś.
bodek71
18.01.2008, 15:20:54
coś podobnego próbowałem wysyłanie e-mail ze strony www na home.pl działa tylko z \r natomiast \n i \r\n nie działa ale spróbuję jeszcze raz
zazdroszczę rozwiązania problemu