嘿开发社区! ?
我是一名数字营销爱好者和 PHP 初学者,我需要一些帮助来解决我网站上的问题。
我的网站
? WebFluence
具体联系表格在这里:联系表格
问题
联系表单附带了一个预构建的 PHP 文件,位于includes/sendmail.php 中。不幸的是,该脚本使用了过时的 mail() 函数,Hostinger(我的托管提供商)告诉我该函数不安全且不推荐。他们建议我使用 PHPMailer,它预装在他们的企业托管计划中。
我读过有关设置 PHPMailer 的文章,但说实话,这对我来说有点不知所措,因为我以前从未使用过 PHP。模板作者还没有回复,我一直在想办法解决这个问题。
详情
域名:在 GoDaddy 注册
托管:Hostinger 商业计划
当前邮件脚本:过时的 mail() 函数脚本在这里:
<?php // 读取表单值 $成功=假; $successTxt = ""; $senderName = isset( $_POST['name'] ) ? preg_replace( "/[^.-' a-zA-Z0-9]/", "", $_POST['name'] ) : ""; $senderEmail = isset( $_POST['email'] ) ? preg_replace( "/[^.-_@a-zA-Z0-9]/", "", $_POST['email'] ) : ""; $subject = isset( $_POST['subject'] ) ? preg_replace( "/[^.-' a-zA-Z0-9]/", "", $_POST['subject'] ) : ""; $budget = isset( $_POST['预算'] ) ? preg_replace( "/^[A-Za-z0-9\-\.] $/", "", $_POST['预算'] ) : ""; $message = isset( $_POST['message'] ) ? preg_replace( "/(发件人:|收件人:|密件抄送:|抄送:|主题:|内容类型:)/", "", $_POST['message'] ) : ""; $txt = "客户预算:" . $预算。 “nn”。 $消息。 “nn”。 “问候,nn”。 $发件人姓名。 " | " .$senderEmail; // 如果所有值都存在,则发送电子邮件 if ( $senderName && $senderEmail && $message ) { $mailTo = "dusan@webluence.digital"; // 将其更改为您的主机邮件,例如 (contact@yourdomain.com)。 $headers = "来自:" . $senderEmail; $success = 邮件( $mailTo, $subject, $txt, $headers ); $successTxt = "<p> <p>我需要什么<br> 我想用基于 PHPMailer 的安全脚本替换此脚本。 Hostinger 已经预装了 PHPMailer,我被告知它更可靠。我找到了一篇关于设置它的文章,但对于我这个 PHP 新手来说太混乱了。</p> <p>这就是我现在拥有的:<br> </p><pre class="brush:php;toolbar:false"><?php 需要“供应商/autoload.php”; 使用 PHPMailerPHPMailerPHPMailer; $mail = 新的 PHPMailer; $mail->isSMTP(); $mail->SMTPDebug = 0; $mail->Host = 'smtp.hostinger.com'; $mail->端口=587; $mail->SMTPAuth = true; $mail->用户名 = 'sales@webfluence.digital'; $mail->密码 = 'c;Ge?H9unUs#:T0J'; $mail->setFrom('sales@webfluence.digital', 'Dusan Walla'); $mail->addReplyTo('sales@webfluence.digital', 'Dusan Walla'); // 读取表单值并清理它们以防止注入攻击 $senderName = isset($_POST['name']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['name']) : ""; // 删除所有非字母、数字、空格、点、连字符或撇号的字符 $senderEmail = isset($_POST['电子邮件']) ? preg_replace("/[^.-_@a-zA-Z0-9]/", "", $_POST['email']) : ""; // 删除所有非字母、数字、点、连字符、下划线或@的字符 $subject = isset($_POST['subject']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['subject']) : ""; // 删除所有非字母、数字、空格、点、连字符或撇号的字符 $budget = isset($_POST['预算']) ? preg_replace("/[^.-' a-zA-Z0-9]/", "", $_POST['预算']) : ""; // 删除所有非字母、数字、空格、点、连字符或撇号的字符 $message = isset($_POST['message']) ? preg_replace("/(发件人:|收件人:|密件抄送:|抄送:|主题:|内容类型:)/", "", $_POST['message']) : ""; // 删除所有电子邮件标头以防止标头注入 $mail->addAddress('sales@webfluence.digital', 'Dusan Walla'); $mail->主题 = $subject; $mail->正文 = send()) { echo '邮件错误:' 。 $mail->ErrorInfo; } 别的 { 回声“<p> </p><p>问题<br> 如何以最简单的方式用 PHPMailer 替换此脚本?<br> 有没有分步指南来详细说明我需要做什么?<br> 如何在脚本中配置 Hostinger 的 SMTP 设置?<br> 任何帮助将不胜感激! ?</p> <p>其他资源<br> 这是我参考的文章:如何使用 PHPMailer 进行安全电子邮件发送</p> <p>提前感谢您的指导! ?</p>
以上是需要帮助:努力为我的联系表单设置 PHP 邮件程序的详细内容。更多信息请关注PHP中文网其他相关文章!