Ponieważ żadna wtyczka, którą testowałem nie współpracuje prawidłowo z phpmailerem postanowiłem wrzucić własne rozwiązanie.
Zamieszczony formularz ma charakter poglądowy i do nikogo nie wysyła wiadomości. Musisz go zmodyfikować żeby zadziałał.
Uwaga: Nie można umieszczać dwóch formularzy na tej samej stronie. Naciśnięcie wyślij powoduje wykonanie dwóch poleceń - formularza pocztowego i na przykład formularza komentarzy. Chyba,że użyjemy polecenia “POST” zamiast “GET” Najlepiej jednak utworzyć osobną stronę z formularzem kontaktowym (opis strony statycznej znajduje się tutaj)
Ten kod wstawiony gdziekolwiek na stronie lub w nowym poście powoduje wyświetlenie formularza:
<form enctype="text/html" method="get" action="mail.php" name="mailform">
<table style="text-align: left; width: 50%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="text-align: right;">Nik:</td>
<td><input size="20" name="nick"/></td>
</tr>
<tr>
<td style="text-align: right;">Mail:</td>
<td><input size="20" name="email"/></td>
</tr>
<tr>
<td style="text-align: right;">Treść wiadomości:</td>
<td><textarea cols="15" rows="4" name="tresc"></textarea></td>
</tr>
<tr>
<td style="text-align: center;"><input name="reset" value="Wyczyść" type="reset"/></td>
<td style="text-align: right;"><input name="wyślij" value="Wyślij" type="submit"/></td>
</tr>
</tbody></table></form>
Zastosowano metodę GET i odwołanie do pliku mail.php. Należy skopiować umieszczony niżej kod. Utworzyć plik mail.php i wrzucić go do katalogu głównego naszego word pressa, a następnie wyedytować adekwatnie do naszej sytuacji:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=Utf-8" http-equiv="content-type">
<title>poczta</title>
</head>
<body>
<? require("wp-content/plugins/wp-phpmailer/class.phpmailer.php");//ścieżka do wp-phpmailer
$mail = new PHPMailer();
$mail->PluginDir = "wp-content/plugins/wp-phpmailer/";
$mail->From = "www@www.pl"; //od kogo
$mail->FromName = "word press";//nagłówek From
$mail->Host = "poczta.o2.pl";//adres serwera SMTP
$mail->Mailer = "smtp";//typ serwera pocztowego
$mail->Username = "login";//nazwa użytkownika
$mail->Password = "hasło";//nasze hasło do konta SMTP
$mail->SMTPAuth = true;//autoryzacja do konta
$mail->SetLanguage("pl","wp-content/plugins/wp-phpmailer/language/");//ustawienie języka - jeśli nie działa zmienić na 'en'
$mail->Subject = "temat";//temat maila
// w zmienną $text_body pobieramy dane z formularza
$text_body = "Od: ".$_GET['nick']."\nWiadomosc: ".$_GET['tresc']."\nNadawca: ".$_GET['email'];
$mail->Body = $text_body;
// adresatów dodajemy poprzez metode ‘AddAddress’
$mail->AddAddress("email@odbiorcy","admin");
//strona z wynikiem działania formularza
if(!$mail->Send())
{
echo "błąd wysyłanego maila<br>";
echo $mail->ErrorInfo."</ br>";}
else
{
$mail->ClearAddresses();
$mail->ClearAttachments();
echo "wysłano</ br>";}
?>
//przycisk “wróć”
<form action="#">
<input type="button" value="wróć" onClick="history.back()" />
</form>
</body>
</html>
Na koniec plik z językiem polskim, który należy umieścić w katalogu language znajdującym się w wp-content/plugins/wp-phpmailer uprzednio zmieniając rozszerzenie na php - phpmailerlang-pl.txt.


Podobne artykuły
Wypowiedzi: 3 użytkowników
Skorzystałem - dzięki wielkie.
Jedno małe “ale” - nie poszło mi z polskim językiem - ciągle wywalało mi jakieś błędy. Po zmianie języka na angielski działa bez problemu.
Dziękuje raz jeszcze !
Pozdrawiam
Wojtek Dobrucki
Działa
ale mam pytanko - jak zrobić żeby po wysłaniu nie wyskakiwała jakaś inna strona tylko wracało na stronę główną.
pozdrawiam
qolop
Należy wstawić w miejsce gdzie jest:
echo "wysłano<br />";header('Location: index.php');Zostaw komentarz
Uwaga: Komentarze są moderowane. Minie chwila zanim wpis pojawi się na stronie