cPanel是一个基于Linux的Web托管控制面板,提供图形界面和自动化工具,旨在简化托管网站的过程。 cPanel采用3层结构,为管理员,经销商和最终用户网站所有者提供功能,通过标准Web浏览器控制网站和服务器管理的各个方面。
我的 php 邮件程序在本地主机上工作正常,但是当我在 cpanel 上运行相同的代码时,我收到错误消息:SMTP connect() failed 我的 php 邮件程序在本地主机上工作正常,但是当我在 cpanel 上运行相同的代码时,我收到错误消息:SMTP connect() failed <?php require 'PHPMailer/PHPMailerAutoload.php'; $mail = new PHPMailer; $mail->isSMTP(); $mail->Host = "tls://smtp.gmail.com"; $mail->SMTPAuth = true; $mail->Username = '********@gmail.com'; $mail->Password = '********'; $mail->Port = 587; $mail->setFrom('[email protected]', 'Mailer'); $mail->AddAddress('[email protected]', 'Joe User'); $mail->addReplyTo('[email protected]', 'Information'); $mail->isHTML(true); $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; } else { echo 'Message has been sent'; } ?> 请帮助我,我哪里错了? CPanel 默认阻止访问外部 SMTP 服务器。 在 whm > 安全中心 > SMTP 限制禁用中禁用此限制 这有效 <?php require_once('./class.phpmailer.php'); $mail = new PHPMailer(); // create a new object $mail->IsSMTP(); // enable SMTP $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only $mail->SMTPAuth = true; // authentication enabled $mail->SMTPSecure = 'ssl'; // secure transfer enabled REQUIRED for Gmail $mail->Host = "smtp.mail.yahoo.com"; $mail->Port = 465; // or 587 $mail->IsHTML(true); $mail->Username = "[email protected]"; $mail->Password = "xxxxxx"; $mail->SetFrom("[email protected]"); $mail->Subject = "Test"; $mail->Body = "hello"; $mail->AddAddress("[email protected]"); if(!$mail->Send()) { echo "Mailer Error: " . $mail->ErrorInfo; } else { echo "Message has been sent"; }?> 您可能忘记启用 GMail 帐户的 SMTP 访问(它是设置中 IMAP 访问的一部分)。 此外,“tls://smtp.gmail.com”不是有效的 SMTP 服务器地址。如果您想使用 TLS,请使用 $mail->SMTPSecure = "tls";。 感谢您的建议,非常感谢:-) 我得到的解决方案如下。 1>give Absolute path for PHPMailerAutoload.php 2>host name as "localhost" 3>create dummy emailId on server <?php require'/home/username/public_html/phpmailertesting/PHPMailer/PHPMailerAutoload.php'; $mail = new PHPMailer; $mail->SMTPDebug =3; // Enable verbose debug output $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'localhost'; // Specify main and backup SMTP servers $mail->SMTPAuth = true; // Enable SMTP authentication $mail->Username = '[email protected]'; // SMTP username $mail->Password = '*****'; // SMTP password $mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted $mail->Port = 587; // TCP port to connect to $mail->setFrom('[email protected]', 'Mailer'); $mail->addAddress('*******@gmail.com'); // Name is optional //$mail->addReplyTo('[email protected]', 'Information'); //$mail->addCC('*******@gmail.com'); //$mail->addBCC('[email protected]'); //$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments //$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name $mail->isHTML(true); // Set email format to HTML $mail->Subject = 'Here is the subject'; $mail->Body = 'This is the HTML message body <b>in bold!</b>'; $mail->AltBody = 'This is the body in plain text for non-HTML mail clients'; if(!$mail->send()) { echo 'Message could not be sent.'; echo 'Mailer Error: ' . $mail->ErrorInfo; exit(); } else { echo 'Message has been sent'; } ?> 您需要向 ISP 公司购买 Cpanel/WHM 才能访问 Gmail 等外部 SMTP 电子邮件。首先,禁用:WHM > 安全中心 > SMTP 限制已禁用。 并确保 CSF 防火墙“SMTP_BLOCK”设置已启用。 如果您在安全设置中使用 Gmail,则启用较低的安全性,您可以使用 smtp 身份验证。 PHPMailer 建议使用 SSL 来解决所有防火墙和安全问题。 截至 2024 年 12 月 - CPanel 和 GMAIL 等电子邮件服务器有一些更新的要求。我尝试了数十种配置,这是一个完整的工作示例和 PHP 片段。我在那里留下了注释行,以向您展示我尝试过的一些额外设置。您不需要注释行。此示例假设您的服务器上有 PHPMailer 库作为文件夹/目录。您还可以使用作曲家。我可以只用 $mail->Host = 'localhost'; 直接从 CPanel 发送电子邮件,但这些电子邮件只能发送到不太安全的电子邮件服务,例如 AOL。要发送到 GMAIL,您需要启用 SSL 和 SMTPAuth,否则 GMAIL 将完全阻止电子邮件,电子邮件甚至不会进入垃圾邮件文件夹。 <?php // Import PHPMailer classes into the global namespace // These must be at the top of your script, not inside a function use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; require_once($_SERVER['DOCUMENT_ROOT'].'/PHPMailer/src/Exception.php'); require_once($_SERVER['DOCUMENT_ROOT'].'/PHPMailer/src/PHPMailer.php'); require_once($_SERVER['DOCUMENT_ROOT'].'/PHPMailer/src/SMTP.php'); $mail = new PHPMailer(true); try { $mail->SMTPDebug = SMTP::DEBUG_SERVER; $mail->SMTPDebug = 2; // Enables detailed debugging output // Server settings // $mail->Host = 'smtp.gmail.com'; // Gmail SMTP server // $mail->isSMTP(); // Set mailer to use SMTP $mail->Host = 'localhost'; $mail->Port = 465; $mail->SMTPAuth = true; // Enable SMTP authentication $mail->SMTPSecure = 'ssl'; $mail->setFrom('any email - preferable a domain email', 'Domain Name'); $mail->addReplyTo('any email - preferable a domain email', 'Domain Name'); // $mail->isSMTP(); // $mail->Username = 'your_email'; // CPanel email address // $mail->Password = "your_pass"; // $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS; // Use SMTPS (SSL encryption) // $mail->Port = 25; // SMTP port for SSL // Content $mail->isHTML(true); // Set email format to HTML $mail->Subject = "Your Subject"; $mail->Body = "<h1>Thank you message or whatever you want.</p> <p>Some info</p> <p>Maybe a welcome message.</p> <p>Extra paragraph if needed.</p>"; $mail->AltBody = "Thank you message Info without html tags Maybe a welcome message Extra paragraph if needed."; $mail->addAddress("the email you want to send to"); // Add a recipient $mail->addAddress("add a second recipient email if you want"); // Add a recipient $mail->addBcc("bcc an email if you want"); // Add a recipient $mail->Send(); } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; } 当仅将主机设置为 localhost 进行测试时,我不会收到来自 GoDaddy CPanel 服务器的错误,但 GMAIL 服务器由于缺少 SSL 而阻止了它。之前回答的代码示例不起作用或无法帮助排除故障。假设您已将 PHPMailer 安装在 public_html 文件夹中,此示例将立即运行。 这是没有注释行的示例,以显示代码是多么简单: <?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; require_once($_SERVER['DOCUMENT_ROOT'].'/PHPMailer/src/Exception.php'); require_once($_SERVER['DOCUMENT_ROOT'].'/PHPMailer/src/PHPMailer.php'); require_once($_SERVER['DOCUMENT_ROOT'].'/PHPMailer/src/SMTP.php'); $mail = new PHPMailer(true); try { $mail->Host = 'localhost'; $mail->Port = 465; $mail->SMTPAuth = true; // Enable SMTP authentication $mail->SMTPSecure = 'ssl'; $mail->setFrom('any email - preferable a domain email', 'Domain Name'); $mail->addReplyTo('any email - preferable a domain email', 'Domain Name'); // Content $mail->isHTML(true); // Set email format to HTML $mail->Subject = "Your Subject"; $mail->Body = "<h1>Thank you message or whatever you want.</p> <p>Some info</p> <p>Maybe a welcome message.</p> <p>Extra paragraph if needed.</p>"; $mail->AltBody = "Thank you message Info without html tags Maybe a welcome message Extra paragraph if needed."; $mail->addAddress("the email you want to send to"); // Add a recipient $mail->addAddress("add a second recipient email if you want"); // Add a recipient $mail->addBcc("bcc an email if you want"); // Add a recipient $mail->Send(); } catch (Exception $e) { echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}"; } ?>
我的网络服务器错误日志中有大量来自同一引用者的条目。请参阅下面的示例: 无法提供目录 /home/*****/public_html/wp-admin/css/: 没有匹配的 DirectoryIndex (index.php,index.
我已通过 cPanel 为我的网站安装了 PostgreSQL。看起来我可以使用 cPanel 提供的 pgAdmin 访问数据库。 但是,我想连接到数据库(在我的网站上运行)
我无法为所有 Cpanel 帐户发送电子邮件。它尝试发送电子邮件失败,然后收到“允许每小时最大延迟和失败次数 (5/5 100%)”的消息。任何一个都可以吗
我需要更改我的一个域的根目录, 但在我的cpanel中我没有找到任何选项,只有系统的硬核,但我对系统和服务器有非常基本的了解。 我怎样才能...
如何在 Laravel 项目中通过 SMTP 发送电子邮件?
我是 Laravel 新手,目前正在开发一个托管在 cPanel 上的网站。我正在尝试实现电子邮件功能以允许用户重置密码。然而,我遇到了
如何从 Google Cloud Run 连接到外部 MySQL 数据库(第三方 MySQL DB)?
我有一个 Nuxt 3 应用程序部署到 Firebase 托管,我需要从该应用程序访问 CPanel 共享托管上的远程 MySQL 数据库。 Nuxt 3 应用程序是客户端-服务器,并使用默认的 Nitro ...
如何使用 SFTP 将 Hosting cPanel 与 Visual Studio Code 连接
我知道如何使用 ftp-simple 扩展将 cPanel 与 Visual Studio 代码编辑器连接,但我想与其连接 SFTP 方法,该方法比 FTP 更安全。 我也使用 SFTP 连接它
我正在将 git hub 存储库克隆到 Cpanel git 版本控制,我收到术语 15 错误
我正在将 git hub 存储库克隆到 Cpanel git 版本控制,但出现以下错误, 错误:“/usr/local/cpanel/3rdparty/bin/git”由于收到“TERM”(15) 信号而提前结束...
我在 cPanel 中向我的帐户添加了一个插件域,然后出现以下错误消息: “插件域已创建” 但它也说 “使用 addondomainnam 的纯配额检查检测到错误...
说明: 我有一个带有 DNS 配置和域管理的 cPanel 设置,其中我的主域“osi.com”指向文件服务器上的“public_html”文件夹并显示...
我见过很多将 GitHub 存储库部署到共享托管(cPanel)的方法。 但方法有很多,而且也不都是一样的,解决办法我也不是特别清楚。 首先,我
是否可以在 CPanel 的域根目录(而不是子目录)上运行 Node.js“Passenger”应用程序?
我正在尝试按照 CPanel / WHMCS 的指示(此处和此处)将 Node.js 应用程序设置为“乘客”应用程序。由于 CPanel 主要是 LAMP 堆栈,因此他们的 Node 产品似乎......
cPanel 恢复后出现 HTTP 错误 500 [Moodle]
所以我不小心删除了cPanel中的moodle目录。 我已经使用 jetbackup5 完成了主目录和数据库恢复。 但是完成后,我无法访问显示 HTTP ERROR 500 的 url。An...
如何将war文件部署到cPanel并从URL中删除项目名称?
我需要在 cPanel 上运行我的 Java 应用程序。我已经成功安装Tomcat了。 我可以通过将 war 文件复制到我的 www 文件夹中来运行我的应用程序,但问题是它显示项目名称...
每当我从 VS Code 推送代码到 GitHub 时,我想设置从 GitHub 到 cPanel 的自动部署,但它不起作用。 我已成功从 GitHub 设置手动部署。然而,我...
我对在c Pannel上部署nodejs有点陌生。 我在c面板上安装了node js并将我的代码上传到c面板。只有默认路由器的工作方式如下 `app.get('/', (req,res)=>{ 返回res.stat...
Next.js 应用程序路由在部署到 cPanel 后不起作用
我刚刚使用 buddy Works 和 Github 在 cPanel 上部署了我的下一个应用程序。整个过程流畅且工作正常,我能够将 .next 文件夹上传到 cPanel 的 public.html 文件夹。但是...
在全球 cpanel 服务器上阻止所有 xmlrpc.php 请求
我在 Google 上搜索了很多,寻找阻止我的 cpanel 服务器上所有 xmlrpc.php 请求的工作示例。我尝试过 CSF 选项,该选项似乎仅在请求来自同一个时才有效......
我有一个 cPanel 帐户,该帐户附加到我在 WHMCS 上的网站。我尝试通过编辑 cPanel 中“模板”文件夹内的文件来编辑网站,但是当我单击“保存更改”时,我得到了