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

PHP邮件发送函数:10个让你轻松发送邮件的函数

发布时间:2023-06-30 22:09:57

PHP邮件发送函数:10个让你轻松发送邮件的函数

邮件是网络上最基本的通信形式之一,无论是个人还是企业,在日常工作中都需要使用到邮件进行沟通。在PHP中,我们可以使用一些函数和类来轻松地发送邮件。本文将介绍10个常用的PHP邮件发送函数,帮助你快速构建邮件发送功能。

函数1:mail

mail函数是PHP中最简单的发送邮件函数,它使用SMTP协议将邮件发送到指定的邮件服务器。

<?php
$to = "info@example.com";
$subject = "Hello";
$message = "This is a test email";
$headers = "From: sender@example.com";

if (mail($to, $subject, $message, $headers)) {
    echo "Mail sent successfully";
} else {
    echo "Mail sending failed";
}
?>

函数2:mb_send_mail

mb_send_mail函数可以发送包含中文字符的邮件,使用方式与mail函数类似。

<?php
$to = "info@example.com";
$subject = "你好";
$message = "这是一封测试邮件";
$headers = "From: sender@example.com";

if (mb_send_mail($to, $subject, $message, $headers)) {
    echo "Mail sent successfully";
} else {
    echo "Mail sending failed";
}
?>

函数3:mailgun

mailgun是一个强大的邮件发送服务,提供了PHP SDK,可以轻松发送邮件。首先,你需要在mailgun网站上注册一个账号,并获取API密钥和域名。

<?php
require 'vendor/autoload.php';

use Mailgun\Mailgun;

$mg = Mailgun::create('YOUR_API_KEY');

$mg->messages()->send('YOUR_DOMAIN', [
    'from' => 'sender@example.com',
    'to' => 'info@example.com',
    'subject' => 'Hello',
    'text' => 'This is a test email'
]);
?>

函数4:PHPMailer

PHPMailer是一个功能强大的邮件发送类,支持多种邮件发送方式,包括SMTP、sendmail和PHP的mail函数。

<?php
require 'vendor/autoload.php';

$mail = new PHPMailer\PHPMailer\PHPMailer();
$mail->isSMTP();
$mail->Host = 'smtp.example.com';
$mail->Port = 587;
$mail->SMTPAuth = true;
$mail->Username = 'sender@example.com';
$mail->Password = 'password';
$mail->setFrom('sender@example.com', 'Sender');
$mail->addAddress('info@example.com', 'Info');
$mail->Subject = 'Hello';
$mail->Body = 'This is a test email';

if ($mail->send()) {
    echo "Mail sent successfully";
} else {
    echo "Mail sending failed";
}
?>

函数5:SwiftMailer

SwiftMailer是PHP中 的邮件发送库之一,具有强大的功能和灵活的使用方式。

<?php
require_once 'vendor/autoload.php';

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

$mailer = new Swift_Mailer($transport);

$message = (new Swift_Message('Hello'))
    ->setFrom(['sender@example.com' => 'Sender'])
    ->setTo(['info@example.com' => 'Info'])
    ->setBody('This is a test email');

if ($mailer->send($message)) {
    echo "Mail sent successfully";
} else {
    echo "Mail sending failed";
}
?>

函数6:Guzzle

Guzzle是一个流行的HTTP客户端库,也可以用于发送邮件。你可以使用Guzzle发送HTTP请求,包括发送电子邮件。

<?php
require 'vendor/autoload.php';

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.mailjet.com/v3.1/send', [
    'auth' => ['YOUR_API_KEY', 'YOUR_API_SECRET'],
    'form_params' => [
        'Messages' => [
            [
                'From' => [
                    'Email' => 'sender@example.com',
                    'Name' => 'Sender'
                ],
                'To' => [
                    [
                        'Email' => 'info@example.com',
                        'Name' => 'Info'
                    ]
                ],
                'Subject' => 'Hello',
                'TextPart' => 'This is a test email'
            ]
        ]
    ]
]);

if ($response->getStatusCode() == 200) {
    echo "Mail sent successfully";
} else {
    echo "Mail sending failed";
}
?>

函数7:SendGrid

SendGrid是一个流行的邮件发送服务,提供了PHP SDK,可用于轻松发送邮件。

<?php
require 'vendor/autoload.php';

$apiKey = 'YOUR_API_KEY';
$email = new \SendGrid\Mail\Mail();
$email->setFrom("sender@example.com", "Sender");
$email->setSubject("Hello");
$email->addTo("info@example.com", "Info");
$email->addContent("text/plain", "This is a test email");

$sendgrid = new \SendGrid($apiKey);
$response = $sendgrid->send($email);

if ($response->statusCode() == 202) {
    echo "Mail sent successfully";
} else {
    echo "Mail sending failed";
}
?>

函数8:Mailchimp

Mailchimp是一个强大的邮件服务提供商,可以轻松地发送邮件。你需要在Mailchimp网站上注册一个账号,并获取API密钥。

<?php
require 'vendor/autoload.php';

use DrewM\MailChimp\MailChimp;

$api_key = 'YOUR_API_KEY';
$list_id = 'YOUR_LIST_ID';

$MailChimp = new MailChimp($api_key);

$result = $MailChimp->post("lists/$list_id/members", [
    'email_address' => 'info@example.com',
    'status' => 'subscribed'
]);

if ($MailChimp->success()) {
    echo "Mail sent successfully";
} else {
    echo "Mail sending failed";
}
?>

函数9:Mandrill

Mandrill是一个流行的邮件发送服务,提供了PHP SDK,可用于轻松发送邮件。

<?php
require 'vendor/autoload.php';

$mandrill = new Mandrill('YOUR_API_KEY');

$message = [
    'html' => '<p>This is a test email</p>',
    'text' => 'This is a test email',
    'subject' => 'Hello',
    'from_email' => 'sender@example.com',
    'from_name' => 'Sender',
    'to' => [
        [
            'email' => 'info@example.com',
            'name' => 'Info',
            'type' => 'to'
        ]
    ]
];

$result = $mandrill->messages->send($message);

if (!empty($result) && $result[0]['status'] == 'sent') {
    echo "Mail sent successfully";
} else {
    echo "Mail sending failed";
}
?>

函数10:SMTP

SMTP是一种常用的邮件发送协议,使用SMTP协议可以直接将邮件发送到指定的邮件服务器。

<?php
require 'vendor/autoload.php';

use Zend\Mail\Message;
use Zend\Mail\Transport\Smtp;
use Zend\Mail\Transport\SmtpOptions;

$options = new SmtpOptions([
    'name' => 'smtp.example.com',
    'host' => 'smtp.example.com',
    'port' => 587,
    'connection_class' => 'login',
    'connection_config' => [
        'username' => 'sender@example.com',
        'password' => 'password',
        'ssl' => 'tls',
    ],
]);

$transport = new Smtp($options);

$message = new Message();
$message->setFrom('sender@example.com')
    ->addTo('info@example.com')
    ->setSubject('Hello')
    ->setBody('This is a test email');

$transport->send($message);

echo "Mail sent successfully";
?>

总结:

上述是10个让你轻松发送邮件的PHP函数。无论你是选择使用PHP自带的mail函数,还是使用第三方库,选择适合你的方式来发送邮件是非常简单和方便的。希望本文对你有所帮助!