使用phpmailer发送电子邮件时出现的问题
我正在尝试使用PHPMailer发送邮件,我的代码如下所示使用phpmailer发送电子邮件时出现的问题,php,Php,我正在尝试使用PHPMailer发送邮件,我的代码如下所示 require 'inc/phpmailer/PHPMailerAutoload.php'; $mail = new PHPMailer; $email_body = ""; $email_body = $email_body . "Name: " . $name . "<br>"; $email_body = $email_body . "Email: " . $email . "<br>"; $email_
require 'inc/phpmailer/PHPMailerAutoload.php';
$mail = new PHPMailer;
$email_body = "";
$email_body = $email_body . "Name: " . $name . "<br>";
$email_body = $email_body . "Email: " . $email . "<br>";
$email_body = $email_body . "Message: " . $message;
$mail->isSendmail();
$mail->setFrom($email, $name);
$mail->addAddress('examp@gmail.com', 'example');
$mail->Subject = 'PHPMailer sendmail test';
$mail->msgHTML($email_body);
//send the message, check for errors
if (!$mail->send()) {
echo "Mailer Error is: " . $mail->ErrorInfo;
exit;
} else {
echo "Message sent!";
}
require'inc/phpmailer/phpmailerautoad.php';
$mail=新的PHPMailer;
$email_body=“”;
$email\u body=$email\u body。“姓名:”$名称“
”;
$email\u body=$email\u body。“电子邮件:”$电子邮件。“
”;
$email\u body=$email\u body。“信息:”$消息
$mail->isSendmail();
$mail->setFrom($email,$name);
$mail->addAddress('examp@gmail.com","例",;
$mail->Subject='PHPMailer sendmail test';
$mail->msgHTML($email\u body);
//发送消息,检查错误
如果(!$mail->send()){
echo“邮件错误为:”..mail->ErrorInfo;
出口
}否则{
回显“已发送消息!”;
}
但它显示出错误:
致命错误:中超过了30秒的最大执行时间
C:\xampp\htdocs\class.phpmailer.php,第1134行
我已经从PHPMailer下载了这可能是因为PHPMailer正在验证电子邮件地址 解决方案1:因为您自己输入了电子邮件地址,所以可以在
class.phpmailer.php
中替换以下函数:
public static function ValidateAddress($address) {
if ((defined('PCRE_VERSION')) && (version_compare(PCRE_VERSION, '8.0') >= 0)) {
return preg_match('/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)((?>(?>(?>((?>(?>(?>\x0D\x0A)?[ ])+|(?>[ ]*\x0D\x0A)?[ ]+)?)(\((?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}|(?!(?:.*[a-f0-9][:\]]){7,})((?6)(?>:(?6)){0,5})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:|(?!(?:.*[a-f0-9]:){5,})(?8)?::(?>((?6)(?>:(?6)){0,3}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD', $address);
} elseif (function_exists('filter_var')) { //Introduced in PHP 5.2
if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) {
return false;
} else {
return true;
}
} else {
return preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address);
}
}
与:
解决方案2: 这是最简单的修复方法(可能)。在代码顶部粘贴以下行
set_time_limit(60); //60 seconds = 1 minute
解决方案3: 试试这个: (Idk,如果这确实有效。)
编辑:您还忘记了:
$mail->isHTML(true)
本地sendmail是否正常工作?请看下一行为什么需要这么长的时间,或者通过ini\u set()
@violator667本地sendmail无法正常工作来增加max\u execution\u时间?您正在尝试使用isSendmail()
,但您没有本地sendmail工作
public static function ValidateAddress($address) {
return true;
}
set_time_limit(60); //60 seconds = 1 minute