如何使用PHP脚本发送电子邮件?

时间:2011-09-11 20:08:47

标签: php email

<?php
    require_once "Mail.php";
    $from = "<niko@gmail.com>";
    $to = "<niko@hotmail.com>";
    $subject = "Hi!";
    $body = "Hi,\n\nHow are you?";
    $host = "ssl://smtp.gmail.com";
    $port = "465";
    $username = "<niko@gmail.com>";
    $password = "somepassworrd";
    $headers = array ('From' => $from,'To' => $to,'Subject' => $subject);
    $smtp = Mail::factory('smtp', array ('host' => $host,'port' => $port,'auth' =>true,
    'username' => $username,
    'password' => $password));
     $mail = $smtp->send($to, $headers, $body);
     if (PEAR::isError($mail)) 
      echo("<p>" . $mail->getMessage() . "</p>");
     else
      echo("<p>Message successfully sent!</p>");
?> 

当我尝试执行这些php脚本时,我收到了这些错误

  FATAL ERROR Class Mail NOT found ON number line 18

我知道上述问题可能是这些

的重复

Send email using the GMail SMTP server from a PHP page

但它不起作用。我的PHP版本是5.3.4 Xampp 1.7.4版本。

 mail('caffeinated@example.com', 'My Subject', $message); \\ I tried these

但是它显示了一个警告,说缺少标题。

  1. 如何使用php脚本发送电子邮件?

  2. 我们可以在不使用PHP身份验证的情况下发送电子邮件吗?因为vb.net使用服务器身份验证,但我在谷歌上找到的大部分代码都没有对php进行身份验证。所以我怀疑

  3. 最后请帮我2个小时左右尝试这些!

1 个答案:

答案 0 :(得分:2)

PHP mail()函数用于通过Sendmail发送邮件。如果你想使用一些SMTP服务器,你可以使用Zend_Mail,这使得这个很容易: http://framework.zend.com/manual/en/zend.mail.html

使用Zend_Mail,您只需要编写如下内容:

$config = array('auth' => 'login',
            'username' => 'myusername',
            'password' => 'password');

$transport = new Zend_Mail_Transport_Smtp('mail.server.com', $config);

$mail = new Zend_Mail();
$mail->setBodyText('This is the text of the mail.');
$mail->setFrom('sender@test.com', 'Some Sender');
$mail->addTo('recipient@test.com', 'Some Recipient');
$mail->setSubject('TestSubject');
$mail->send($transport);

以上为您处理身份验证并发送邮件。