发送邮件

使用PHPMailer

经 PHPMailer 5.1 测试

PHP 提供了一个 mail() 函数,看起来很简单易用。
不幸的是,与 PHP 中的很多东西一样,它的简单性是个幻象,因其虚假的表面使用它会导致严重的安全问题。

Email 是一组网络协议,比 PHP 的历史还曲折。完全可以说发送邮件中的陷阱与 PHP 的 mail() 函数一样多,这个可能会令你有点「不寒而栗」吧。

PHPMailer 是一个流行而成熟的开源库,为安全地发送邮件提供一个易用的接口。
它关注可能陷阱,这样你可以专注于更重要的事情。

示例

  1. <?php
  2. // Include the PHPMailer library
  3. require_once('phpmailer-5.1/class.phpmailer.php');
  4.  
  5. // Passing 'true' enables exceptions. This is optional and defaults to false.
  6. $mailer = new PHPMailer(true);
  7.  
  8. // Send a mail from Bilbo Baggins to Gandalf the Grey
  9.  
  10. // Set up to, from, and the message body. The body doesn't have to be HTML;
  11. // check the PHPMailer documentation for details.
  12. $mailer->Sender = 'bbaggins@example.com';
  13. $mailer->AddReplyTo('bbaggins@example.com', 'Bilbo Baggins');
  14. $mailer->SetFrom('bbaggins@example.com', 'Bilbo Baggins');
  15. $mailer->AddAddress('gandalf@example.com');
  16. $mailer->Subject = 'The finest weed in the South Farthing';
  17. $mailer->MsgHTML('<p>You really must try it, Gandalf!</p><p>-Bilbo</p>');
  18.  
  19. // Set up our connection information.
  20. $mailer->IsSMTP();
  21. $mailer->SMTPAuth = true;
  22. $mailer->SMTPSecure = 'ssl';
  23. $mailer->Port = 465;
  24. $mailer->Host = 'my smpt host';
  25. $mailer->Username = 'my smtp username';
  26. $mailer->Password = 'my smtp password';
  27.  
  28. // All done!
  29. $mailer->Send();
  30. ?>