本文目录一览:
PHP如何通过SMTP验证发送邮件
PHP mail()与SMTP验证
缺乏灵活性是PHP的mail()
函数显得过于简单的部分原因。最重要而且令人沮丧的是,死板的mail()
函数通常还不允许你使用你选择的SMTP服务器,并且它也根本不支持如今已被众多邮件服务器采用的SMTP验证。
幸运的是,克服PHP本身的缺陷既不困难,也不麻烦,更不痛苦。对于大多数情况下的邮件应用,免费的PEAR Mail包足够提供全部的所需功能与灵活性,并且它也能够与你期望的外部邮件服务器进行验证。在提高安全性的方面,它也支持SSL连接。
通过SMTP验证在PHP脚本中发送邮件
在PHP脚本中通过SMTP验证连接外部SMTP服务器并且发送邮件的方法如下:
确保PEAR Mail包已经安装。
通常,它已经安装到了PHP之中,尤其在PHP 4及以后的版本中。放手一试吧。
<?php
require_once "Mail.php";
$from = "Sandra Sender <s@example.com>";
$to = "Ramona Recipient <r@example.com>";
$subject = "Hi!";
$body = "Hi,\n\nHow are you?";
$host = "mail.example.com";
$username = "smtp_username";
$password = "smtp_password";
$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $subject
);
$smtp = Mail::factory('smtp', array(
'host' => $host,
'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验证邮箱格式
PHP正则表达式验证邮箱示例如下:
<?php
$email = '1909970983@qq.com';
$pattern = "/([a-z0-9]*[-_.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[.][a-z]{2,3}([.][a-z]{2})?/i";
if (preg_match($pattern, $email)) {
echo '邮箱验证通过!';
} else {
echo '邮箱格式错误!';
}
?>
php邮件发送验证码问题
你的if
语句有问题
肢解开来是这样的:
if (存在验证码) {
if (验证码不正确) {
提示错误
} else {
发送邮件
}
}
不存在验证码时没有相关操作。
php如何实现邮箱验证
这是一个可以发送邮件的程序。程序是直接使用SMTP协议进行发送,用到了经典的phpMailer库。
请阅读apply.php
文件。
发邮件之前你需要一个用来发送邮件的邮箱账号。但不能使用这个账号发送太多的邮件,否则会被当做垃圾邮件屏蔽。如果发送量较大,可以多申请几个邮箱。
关键变量说明:
subject
:邮件的主题email
:邮件的内容host
:SMTP主机,与你申请的邮箱的服务商有关,详见代码内注释fromname
:发件人的名字,可以任意写,对方收到时能看到这个名字from
:发件人地址to
:收件人地址,代码中写了$to = $from
,请自行更改username
和password
:你邮箱的账号和密码,一般username
都等于发件人地址。必须提供,否则无法发送邮件。
PHPMailer说明:
$mailer = new PHPMailer(true);
$mailer->IsHTML(true); // 这是一封HTML邮件
$mailer->IsSMTP(true); // 连接SMTP服务发送邮件
# $mailer->SMTPDebug = true; // 是否开启调试模式
$mailer->CharSet = 'UTF-8'; // 邮件内容的编码,和你程序的编码保持一致
$mailer->Encoding = 'base64'; // 邮件传递过程使用的编码
$mailer->FromName = $fromname; // 发件人
$mailer->Host = $host; // SMTP服务地址
$mailer->AddAddress($to); // 添加收件人
$mailer->From = $from; // 设置发件人
$mailer->Subject = $subject; // 设置主题
$mailer->MsgHTML($email); // 设置HTML邮件内容
$mailer->SMTPAuth = true; // 开启SMTP验证
$mailer->Username = $username; // 设置用户名
$mailer->Password = $passwd; // 设置密码
$mailer->Send(); // 发送邮件