2009-08-23 3 views
9

Я пытаюсь отправить многопользовательскую электронную почту с простой/HTML-информацией, и в настоящее время я использую функцию mail() PHP. Многие люди рекомендовали PHPMailer, поэтому я подумал, что я отдам его.Как использовать PHPMailer? Я не могу найти простой достойный учебник онлайн

Однако, как кажется, все в настоящее время кажется очень сложным. Я загрузил его, и он говорит об установке его и настройке соединений MySQL и SMTP-соединений !? Все, что я хочу сделать, это использовать класс, который будет создавать MIME-письма для меня и отправлять их! Я понимаю возможности SMTP, но все это кажется настолько сложным!

Есть ли способ просто использовать его, например, включить php-файл (без установки сервера или перекомпилирования PHP!), А затем просто использовать класс для создания и отправки электронной почты?

Буду очень признателен, если кто-то может объяснить вещи просто! Я уверен, что это возможно, и я не могу поверить, что после того, как мои часы поиска, в Интернете нет действительно хорошей простой статьи об этом. Все сложно, когда я знаю, что этого не должно быть!

+0

ли вы попробуйте прочитать риую снабженную [PHPMailer] (https://github.com/PHPMailer/PHPMailer)? Он содержит простой пример отправки электронной почты HTML точно так же, как вы описываете. Я знаю, что это старый вопрос, но ему не хватает даже базовой ссылки на самого PHPMailer! – Synchro

ответ

0

Попробуйте вместо SwiftMailer.

+0

Спасибо, я получил эту работу в первый раз! Великие документы тоже! :-) –

+0

Могу ли я спросить, почему вы делаете такую ​​рекомендацию? Я тоже думаю, что phpmailer сегодня не самый лучший, но я немного неосведомлен. Спасибо – Daniel

+0

одну строку, ответьте только ответ? ЭТО НЕ ОТВЕТ. Он даже не затрагивает вопрос OP. – RozzA

4

Я ничего не знаю о PHPMailer, но я рекомендую использовать Zend_Mail. Вот простой пример с приложением:

$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(); 

Это, вероятно, делает все, что вы хотите (Вложения, HTML, SMTP-конфигурации, ...). По умолчанию он использует sendmail, как и функция mail(), поэтому вам не нужно настраивать что-либо вроде SMTP, если вам это не нужно.

Он также имеет очень хорошую документацию, поэтому вам не составит труда найти примеры.

+0

Как извлечь необходимые функции из рамки Zend? –

8

Довольно путь (от this link), первый расширить PHPMailer и установить значения по умолчанию для вашего сайта:

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 
    } 
} 

Затем включите выше сценарий, где это необходимо (в данном примере он называется mail.inc.php) и использовать вновь созданный my_phpmailer класса где-то на вашем сайте:

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

Выглядит неплохо, но ссылка не работает – Baumr

+0

Почему в PHP используется много расширений, которые тесно соединяют класс и вводят зависимости, почему бы не использовать агрегацию вместо этого? – Vitalij

+0

очень ценится за то, что он действительно отвечает на вопрос OP и предоставляет код. это сработало для меня - спасибо! – RozzA

Смежные вопросы