首页 > 后端开发 > php教程 > 需要帮助:努力为我的联系表单设置 PHP 邮件程序

需要帮助:努力为我的联系表单设置 PHP 邮件程序

Mary-Kate Olsen
发布: 2024-12-07 11:31:13
原创
199 人浏览过

Help Needed: Struggling to Set Up PHP Mailer for My Contact Form

嘿开发社区! ?

我是一名数字营销爱好者和 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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板