PHP邮件发送函数:10个让你轻松发送邮件的函数
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函数,还是使用第三方库,选择适合你的方式来发送邮件是非常简单和方便的。希望本文对你有所帮助!
