Mam napisany skrypt rejestracji w php i korzystam z klasy phpmailer do obsługi i wysyłania e-maili z potwierdzeniem rejestracji i linkiem aktywacyjnym.
W pliku rejestracyjnym wczytuje poprzez reiqure(„wyslijmaila.php” plik, w którym ma zdefiniowane konto pocztowe i odwołania do klasy phpmailer. Dzięki plikowi wyslijmaila.php mogę wysylac dane z rejestracji na skrzynkę, tylko w tym problem jak z pliku rejestracyjnego, w którym mam zdefiniowaną treść e-maila, temat wiadomości oraz funkcję tworząca link aktywacyjny przekazać to wszystko funkcji send_mail w pliku wyslijmaila.php ?
częśc kodu odpowiedzialna za tworzenie kodu aktywacyjnego oraz listu poniżej, list jest troche pogmatwany jeszcze go nie dopracowalem.
<?php //wczesniej napisany mam tu kod odpowiedzialny za spr. poprawnosci formularza, i takie tam $_POST["userPasswd1"]=SHA1($_POST["userPasswd1"]); $headers="MIME-Version: 1.0r\n"; $headers.="Content-type: text/html; charset=iso-8859-2r\n"; $content="<html><head><title>Aktywacja Konta</title</head> <body> Aby aktywować konto kliknij na link:<br> <a href= <a href=\"http://localhost/rejestracja/register.php?active=".$actCode."\" target=\"_blank\">http://localhost/rejestracja/register.php?...;actCode."</a> </a><br> Dziekujemy</body></html>"; send_mail(); ?>
funkcja send_mailer z pliku wyslijmaila.php
<? function send_mailer() { require("phpmailer/class.phpmailer.php"); $mail = new PHPMailer(); $mail->PluginDir = "phpmailer/"; $mail->From = "rod@wp.pl"; //adres naszego konta $mail->FromName = "phpMailer tester";//nagłówek From $mail->Host = "smtp.wp.pl";//adres serwera SMTP $mail->Mailer = "smtp"; $mail->Username = "rod@wp.pl";//nazwa użytkownika $mail->Password = "haslo123";//nasze hasło do konta SMTP $mail->SMTPAuth = true; $mail->SetLanguage("en", "phpmailer/language/"); $mail->Subject = "$content";//temat maila // w zmienną $text_body wpisujemy treść maila $text_body .= "$content"; $text_body .= "000"; $text_body .= "PHPMailer"; $mail->Body = $text_body; // dodawanie adresatow 'AddAddress' $mail->AddAddress($_POST["userEmail"],"Jurek"); //$mail->AddAddress("rod@wp.pl","Franek"); if(!$mail->Send()) // Clear all addresses and attachments $mail->ClearAddresses(); $mail->ClearAttachments(); } ?>
Jak sobie umieszczę całą zawartość wyslijmaila.php (funckja send_mailer) w pliku obsługującym rejestracje to zdefinowana wcześniej zmienna np. $conntent może być przywołana we fragmencie wysyłającym maila, i wszystko zostanie do tej zmiennej podstawione, ale jak jest w osobnym pliku to albo przychodzi mi wiadomość z nazwą tematu $content albo jak coś próbuje pozmieniać to pod tą zmienną nic nie ma.
Dodatkowo jak przypisywać automatycznie ścieżkę www serwera aby nie wpisywać jej ręcznie tzn: http://localhost/rejestracja/register.php?active=