2009-08-23 13 views
9

Próbuję wysłać wiadomość e-mail w formacie wielostronicowym typu Plain/HTML i obecnie korzystam z funkcji PHP(). Wiele osób poleca PHPMailer, więc pomyślałem, że spróbuję.Jak korzystać z PHPMailer? Nie mogę znaleźć prostego samouczka online

Jednak, jak wszystko wydaje się obecnie, wydaje się bardzo skomplikowane. Pobrałem go i mówi o jego instalacji i konfiguracji połączeń MySQL i połączeń SMTP !? Wszystko, co chcę zrobić, to użyć ładnej klasy, która zbuduje dla mnie wiadomości MIME i wyśle ​​je! Rozumiem możliwości SMTP, ale wszystko wydaje się takie skomplikowane!

Czy istnieje sposób, aby po prostu go używać, na przykład, dołącz plik php (bez instalacji serwera lub ponownego kompilowania PHP!), A następnie po prostu używając klasy do budowania i wysyłania wiadomości e-mail?

Byłbym bardzo wdzięczny, gdyby ktoś mógł wyjaśnić proste rzeczy! Jestem pewien, że to możliwe i nie mogę uwierzyć, że po godzinach szukania nie ma naprawdę dobrego, prostego artykułu na ten temat w Internecie. Wszystko jest zbyt skomplikowane, gdy wiem, że nie musi być!

+0

Czy spróbować przeczytaniu readme wyposażonego [PHPMailer] (https://github.com/PHPMailer/PHPMailer)? Zawiera prosty przykład wysłania e-maila w formacie HTML dokładnie tak, jak opisujesz. Wiem, że to stare pytanie, ale brakuje mu nawet podstawowego linku do samego PHPMailera! – Synchro

Odpowiedz

0

Zamiast tego spróbuj SwiftMailer.

+0

Dzięki, udało mi się to doskonale! Świetne dokumenty też! :-) –

+0

Czy mogę zapytać, dlaczego robisz takie zalecenia? Też myślę, że phpmailer nie jest najlepszy w dzisiejszych czasach, ale jestem trochę niedoinformowany. Dzięki – Daniel

+0

pojedynczej linii, odpowiedź tylko link? TO NIE JEST ODPOWIEDŹ. Nie dotyka nawet pytania OP. – RozzA

4

Nie wiem nic na temat PHPMailer, ale polecam używanie Zend_Mail. Oto prosty przykład z przystawką:

$mail = new Zend_Mail(); 
$mail->setBodyText('This is the text of the mail.'); 
$mail->createAttachment($myImage, 
         'image/gif', 
         Zend_Mime::DISPOSITION_INLINE, 
         Zend_Mime::ENCODING_8BIT); 
$mail->setFrom('[email protected]', 'Some Sender'); 
$mail->addTo('[email protected]', 'Some Recipient'); 
$mail->setSubject('TestSubject'); 
$mail->send(); 

Prawdopodobnie robi wszystko, co chcesz (załączniki, HTML, SMTP-konfiguracja, ...). Domyślnie używa ona sendmail, podobnie jak funkcja mail(), więc nie musisz konfigurować niczego takiego jak SMTP, jeśli nie potrzebujesz tego.

Posiada również bardzo dobrą dokumentację, dzięki czemu nie będziesz miał problemów ze znalezieniem przykładów.

+0

Jak wyodrębnić niezbędne funkcje z Zend Framework? –

8

Dość droga (od this link), najpierw przedłużyć PHPMailer i ustawienia domyślne dla swojej strony:

require("class.phpmailer.php"); 

class my_phpmailer extends phpmailer { 
    // Set default variables for all new objects 
    var $From  = "[email protected]"; 
    var $FromName = "Mailer"; 
    var $Host  = "smtp1.example.com;smtp2.example.com"; 
    var $Mailer = "smtp";       // Alternative to IsSMTP() 
    var $WordWrap = 75; 

    // Replace the default error_handler 
    function error_handler($msg) { 
     print("My Site Error"); 
     print("Description:"); 
     printf("%s", $msg); 
     exit; 
    } 

    // Create an additional function 
    function do_something($something) { 
     // Place your new code here 
    } 
} 

następnie dołączyć powyższy scenariusz, gdzie potrzebne (w tym przykładzie jest to nazwane mail.inc.php) i korzystać z nowo utworzonym my_phpmailer klasa gdzieś na swojej stronie:

require("mail.inc.php");//or the name of the first script 

// Instantiate your new class 
$mail = new my_phpmailer; 

// Now you only need to add the necessary stuff 
$mail->AddAddress("[email protected]", "Josh Adams"); 
$mail->Subject = "Here is the subject"; 
$mail->Body = "This is the message body"; 
$mail->AddAttachment("c:/temp/11-10-00.zip", "new_name.zip"); // optional name 

if(!$mail->Send()) 
{ 
    echo "There was an error sending the message"; 
    exit; 
} 

echo "Message was sent successfully"; 
+0

Wygląda dobrze, ale link jest zepsuty – Baumr

+0

Dlaczego w PHP używa się dużo rozszerzenia, które ściśle łączy klasy i wprowadza zależności, dlaczego zamiast tego używać agregacji? – Vitalij

+0

doceniany za faktyczne udzielenie odpowiedzi na pytanie OP i podanie kodu. to działało dla mnie - dzięki! – RozzA