我如何使用PHPMailer?我在网上找不到一个简单的体面教程

时间:2009-08-23 15:53:14

标签: php email mime phpmailer

我正在尝试发送普通/ HTML多部分电子邮件,我目前正在使用PHP的mail()函数。很多人推荐PHPMailer所以我想我会试一试。

然而,现在似乎一切都很复杂。我下载了它,它讨论了安装它并配置MySQL连接和SMTP连接!?我想要做的就是使用一个很好的类来为我构建MIME电子邮件并发送它们!我理解SMTP的可能性,但它看起来都很复杂!

有没有简单地使用它的方法,例如,包括一个php文件(没有服务器安装或重新编译PHP!)然后只使用该类来构建和发送电子邮件?

如果有人能够简单地解释一下,我将非常感激!我确信这是可能的,我不能相信,经过几个小时的搜索,在网上没有关于它的真正好的,简单的文章。当我知道它不需要时,一切都太复杂了!

3 个答案:

答案 0 :(得分:8)

漂亮的方式(来自this link),首先扩展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";

答案 1 :(得分: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('somebody@example.com', 'Some Sender');
$mail->addTo('somebody_else@example.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send();

它可能会做你想要的一切(附件,HTML,SMTP配置......)。默认情况下,它使用sendmail,就像mail()函数一样,因此如果您不需要,则不必配置SMTP之类的任何内容。

它还有非常好的文档,因此您无需查找示例。

答案 2 :(得分:0)

请尝试SwiftMailer