Как мне использовать PHPMailer? Я не могу найти простой приличный учебник онлайн - PullRequest
9 голосов
/ 23 августа 2009

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

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

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

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

Ответы [ 3 ]

8 голосов
/ 23 августа 2009

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

require("class.phpmailer.php");

class my_phpmailer extends phpmailer {
    // Set default variables for all new objects
    var $From     = "from@example.com";
    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("josh@example.com", "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";
4 голосов
/ 23 августа 2009

Я ничего не знаю о 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('somebody@example.com', 'Some Sender');
$mail->addTo('somebody_else@example.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send();

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

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

0 голосов
/ 23 августа 2009

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

...