我正在尝试创建联系表格。我在互联网上搜索了如何发送电子邮件,他们总是说使用PHPMailer比使用mail()函数更好。
联系方式包括:姓名,电子邮件,评论和发送按钮。
我刚刚遵循了本教程:https://alexwebdevelop.com/phpmailer-tutorial/,但由于我总是遇到名为“无法实例化邮件功能”的错误,因此无法正常工作。当我已经安装Composer时。
证明我已经安装了作曲家: Composer installed with autoload.php
这是我在php标记内的代码:
use PHPMailer\PHPMailer\PHPMailer;
require 'C:\xampp\composer\vendor\autoload.php';
if(isset($_POST['send'])) {
$em = $_POST['email'];
$nm = $_POST['name'];
$msg = $_POST['comments'];
$mail = new PHPMailer();
$mail->setFrom($em, $nm);
$mail->addAddress('mygmail@gmail.com', 'Admin');
$mail->Subject = 'Concern';
$mail->isHTML(TRUE);
$mail->Body = '$em';
if(!$mail->send()) {
echo $mail->ErrorInfo;
}
}
谢谢您回答这个问题!这将是很大的帮助!
更新:
composer.json的内容/文件:
{
“要求”:{
“ phpmailer / phpmailer”:“ ^ 6.0”
}
}
答案 0 :(得分:0)
如果您阅读了几乎所有地方(包括错误消息中)链接的PHPMailer故障排除指南,则会发现其中包含a detailed explanation for this error以及解决方法。从那里复制:
这意味着您的PHP安装未配置为正确调用mail()
函数(例如sendmail_path
中的php.ini
设置不正确),或者您未安装本地邮件服务器和配置。要解决此问题,您需要执行以下一项或多项操作:
sendmail_path
指向/usr/sbin/sendmail
中的sendmail二进制文件(通常为php.ini
)。请注意,在Ubuntu / Debian上,您可能在.ini
以及其他位置有多个/etc/php5/mods-available
文件。isSendmail()
并在PHPMailer($mail->Sendmail = '/usr/sbin/sendmail';
)中设置sendmail二进制文件的路径。isSMTP()
并直接通过SMTP发送。这与加载作曲家的自动加载器无关。
答案 1 :(得分:0)
当电子邮件被视为垃圾邮件时,某些托管服务会返回此错误。尝试使用与您的网站具有相同域的电子邮件地址。
答案 2 :(得分:-1)
而不是:require 'C:\xampp\composer\vendor\autoload.php';
尝试:require __DIR__ . '/vendor/autoload.php';
这假设/ vendor是文档根目录的子目录。