欢迎访问宙启技术站
智能推送

10个PHP邮件发送函数,轻松实现电子邮件功能

发布时间:2023-06-25 01:21:53

PHP邮件发送功能是Web开发中必不可少的功能之一,通过邮件发送,客户可以及时收到网站相关信息,如注册、订单、忘记密码等。本文将介绍10个PHP邮件发送函数,帮助你轻松实现电子邮件功能。

1. mail()

mail()是PHP自带的邮件发送函数,它支持SMTP协议和sendmail程序。使用此函数,发送邮件非常方便,只需要设置邮件的收件人、发件人、邮件主题、内容等即可。

示例代码:

$to = 'receiver@example.com';
$subject = 'Test email';
$message = 'Hello world';
$headers = 'From: sender@example.com' . "\r
" .
    'Reply-To: sender@example.com' . "\r
" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

2. PHPMailer

PHPMailer是一个流行的PHP邮件发送类,不仅支持SMTP协议和sendmail程序,还支持TLS和SSL加密协议、HTML邮件、附件等功能。使用此类库,发送邮件更加灵活,功能更加强大。

示例代码:

require_once('phpmailer/PHPMailerAutoload.php');

$mail = new PHPMailer;

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.example.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'sender@example.com';                 // SMTP username
$mail->Password = 'password';                           // SMTP password
$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, ssl also accepted
$mail->Port = 587;                                    // TCP port to connect to

$mail->setFrom('sender@example.com', 'Sender Name');
$mail->addAddress('receiver@example.com', 'Receiver Name');     // Add a recipient

$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Test email';
$mail->Body    = 'Hello world';

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

3. SwiftMailer

SwiftMailer是另一个流行的PHP邮件发送类,它可以使用SMTP、sendmail和Mail函数进行邮件发送。该库支持HTML邮件、附件、内嵌资源等功能,并且可以轻松地集成到各种框架和CMS中。

示例代码:

require_once 'swiftmailer/lib/swift_required.php';

$transport = Swift_SmtpTransport::newInstance('smtp.example.com', 587, 'tls')
                  ->setUsername('sender@example.com')
                  ->setPassword('password');

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

$message = Swift_Message::newInstance('Test email')
          ->setFrom(array('sender@example.com' => 'Sender Name'))
          ->setTo(array('receiver@example.com' => 'Receiver Name'))
          ->setBody('Hello world', 'text/html');

if ($result = $mailer->send($message)) {
    echo "Message sent successfully
";
} else {
    echo "Error: ", print_r($result, true), "
";
}

4. PEAR::Mail

PEAR::Mail是一个基于PEAR的邮件发送包,它提供了一个简单的API来发送邮件,并支持SMTP和sendmail协议。

示例代码:

require_once "Mail.php";

$smtp = array(
    'host' => 'smtp.example.com',
    'port' => 587,
    'auth' => true,
    'username' => 'sender@example.com',
    'password' => 'password'
);

$to = 'receiver@example.com';
$subject = 'Test email';
$message = 'Hello world';
$headers = array(
    'From' => 'sender@example.com',
    'To' => $to,
    'Subject' => $subject
);

$mail = Mail::factory('smtp', $smtp);
if ($mail->send($to, $headers, $message)) {
    echo "Message sent successfully
";
} else {
    echo "Error: ", $mail->getMessage(), "
";
}

5. Zend\Mail

Zend\Mail是一个邮件发送组件,可以轻松地集成到Zend Framework应用中。该组件包含SMTP、File和Sendmail传输器,支持HTML邮件、附件等功能。

示例代码:

require_once 'Zend/Mail/Transport/Smtp.php';

$smtp = new Zend\Mail\Transport\Smtp('smtp.example.com', array(
    'auth'     => 'login',
    'username' => 'sender@example.com',
    'password' => 'password',
    'ssl'      => 'tls',
    'port'     => 587
));

$mail = new Zend\Mail\Message();
$mail->setFrom('sender@example.com', 'Sender Name')
     ->addTo('receiver@example.com', 'Receiver Name')
     ->setSubject('Test email')
     ->setBody('Hello world');

if ($smtp->send($mail)) {
    echo "Message sent successfully
";
} else {
    echo "Error: ", $smtp->getLastTransportException()->getMessage(), "
";
}

6. Swift-Swiftlet

Swift-Swiftlet是一个基于SwiftMailer的邮件发送类,可以轻松地集成到Swiftlet框架中。该类库支持SMTP、sendmail和Mail函数进行邮件发送。

示例代码:

$transport = Swift_SmtpTransport::newInstance('smtp.example.com', 587, 'tls')
                  ->setUsername('sender@example.com')
                  ->setPassword('password');

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

$message = Swift_Message::newInstance('Test email')
          ->setFrom(array('sender@example.com' => 'Sender Name'))
          ->setTo(array('receiver@example.com' => 'Receiver Name'))
          ->setBody('Hello world', 'text/html');

if ($result = $mailer->send($message)) {
    echo "Message sent successfully
";
} else {
    echo "Error: ", print_r($result, true), "
";
}

7. Laminas\Mail

Laminas\Mail是一个邮件发送组件,可以轻松地集成到Laminas Framework应用中。该组件包含SMTP、File和Sendmail传输器,支持HTML邮件、附件等功能。

示例代码:

use Laminas\Mail\Message;
use Laminas\Mail\Transport\Smtp as SmtpTransport;
use Laminas\Mail\Transport\SmtpOptions;

$transport = new SmtpTransport();
$options = new SmtpOptions(array(
    'host' => 'smtp.example.com',
    'port' => 587,
    'connection_class' => 'login',
    'connection_config' => array(
        'username' => 'sender@example.com',
        'password' => 'password',
        'ssl'      => 'tls',
    ),
));
$transport->setOptions($options);

$message = new Message();
$message->setFrom('sender@example.com', 'Sender Name')
        ->addTo('receiver@example.com', 'Receiver Name')
        ->setSubject('Test email')
        ->setBody('Hello world');

if ($transport->send($message)) {
    echo "Message sent successfully
";
} else {
    echo "Error: ", print_r($transport->getLastOptions(), true), "
";
}

8. Swift-Swiftlet

Swift-Swiftlet是一个基于SwiftMailer的邮件发送类,可以轻松地集成到Swiftlet框架中。该类库支持SMTP、sendmail和Mail函数进行邮件发送。

示例代码:

$transport = Swift_SmtpTransport::newInstance('smtp.example.com', 587, 'tls')
                  ->setUsername('sender@example.com')
                  ->setPassword('password');

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

$message = Swift_Message::newInstance('Test email')
          ->setFrom(array('sender@example.com' => 'Sender Name'))
          ->setTo(array('receiver@example.com' => 'Receiver Name'))
          ->setBody('Hello world', 'text/html');

if ($result = $mailer->send($message)) {
    echo "Message sent successfully
";
} else {
    echo "Error: ", print_r($result, true), "
";
}

9. YiiMail

YiiMail是一个邮件发送扩展,可以轻松地集成到Yii框架中。该扩展支持SMTP协议、HTML邮件、附件等功能。

示例代码:

`

Yii::import('ext.yii-mail.*');

$transport = new Swift_SmtpTransport('smtp.example.com', 587, 'tls');

$transport