我有一个发送电子邮件的PHP脚本。它目前使用php mail()函数。
然后该函数连接到linux机器上的sendmail功能。然而,对于这个实现,我们想要创建一个不依赖于设置或甚至存在的sendmail的PHP脚本,以便我们可以将代码转移到任何机器并且自包含所有功能。
首先,这有可能吗?我在网上看过一些可下载的课程,所以我认为是。
第二个人之前是否有人这样做过,你知道一个好的课程或地点吗?
我确实需要发送附件和电子邮件。
答案 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.";
}