php电子邮件类

时间:2011-11-08 16:12:53

标签: php email

我有一个发送电子邮件的PHP脚本。它目前使用php mail()函数。

然后该函数连接到linux机器上的sendmail功能。然而,对于这个实现,我们想要创建一个不依赖于设置或甚至存在的sendmail的PHP脚本,以便我们可以将代码转移到任何机器并且自包含所有功能。

首先,这有可能吗?我在网上看过一些可下载的课程,所以我认为是。

第二个人之前是否有人这样做过,你知道一个好的课程或地点吗?

我确实需要发送附件和电子邮件。

3 个答案:

答案 0 :(得分:4)

PHPMailer是一个非常好的库,您可以使用它通过SMTP发送邮件,因此您不必依赖sendmail。 PHPMailer还提供了一种将文件附加到电子邮件的简便方法。

答案 1 :(得分:2)

您可能还想考虑Zend_Mail。我们现在已经使用了一段时间而没有问题。

答案 2 :(得分:1)

有很多例子 - 我使用swiftmailer ... http://swiftmailer.org/http://code.google.com/p/swiftmailer/

示例用法:

require_once 'swift/lib/swift_required.php';

$smtp = Swift_SmtpTransport::newInstance('smtp.host.tld', 25)
  ->setUsername(' ... ')
  ->setPassword(' ... ');

$mailer = Swift_Mailer::newInstance($smtp);

$message = Swift_Message::newInstance('Your subject');
$message
  ->setTo(array(
    'user1@example.org',
    'user2@example.org' => 'User Two',
    'user3@exmaple.org' => 'Another User Name'
  ))
  ->setFrom(array('your@address.com' => 'Your Name'))
  ->attach(Swift_Attachment::fromPath('/path/to/doc1.pdf'))
  ->attach(Swift_Attachment::fromPath('/path/to/doc2.pdf'))
  ->setBody(
    'Here is an image <img src="' . $message->embed(Swift_Image::fromPath('/path/to/image.jpg')) . '" />',
    'text/html'
  )
  ->addPart('This is the alternative part', 'text/plain')
  ;

if ($mailer->send($message))
{
  echo "Message sent!";
}
else
{
  echo "Message could not be sent.";
}