【发布时间】:2018-11-24 13:20:34
【问题描述】:
我正试图找出我的问题,我有一个共享主机提供,出于安全原因禁用了 PHP 邮件功能。
我需要使用PHP发送一些表单数据,我只知道如何使用PHP邮件功能发送表单数据。
我试过用phpmailer,从GitHub上得到了ir,但是没用。
我的问题很简单,是否有一种解决方法可以在没有 PHP 邮件功能的情况下发送表单数据以绕过禁用的 phpmail 和 nobody=on 在我的共享虚拟主机上进行调整?
<?php
function send_mail($email, $recipient_name, $message='')
{
require("phpmailer/class.phpmailer.php");
require("phpmailer/class.smtp.php");
$mail = new PHPMailer();
$mail->CharSet="utf-8";
$mail->IsSMTP();
$mail->Host = 'localhost';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = "user@mysite.com";
$mail->Password = "password";
$mail->setFrom($email, $recipient_name);
$mail->AddAddress($email, $recipient_name);
$mail->WordWrap = 50;
$mail->IsHTML(false);
$mail->Subject = "Contact form";
$mail->Body = $message;
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
}
//vars
$subject = "Contac form";
$from = $_POST['email'];
//data
$msg = "NAME: " .$_POST['name'] ."<br><br>\n";
$msg .= "EMAIL: " .$_POST['email'] ."<br><br>\n";
$msg .= "WEBSITE: " .$_POST['website'] ."<br><br>\n";
$msg .= "MESSAGE: " .$_POST['message'] ."<br>\n";
//Headers
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=UTF-8\r\n";
$mail="support@mysite.com";
//send mail
//mail($mail, $subject, $msg, $headers, "-f $from");
send_mail($from, $_POST['name'], $msg);
?>
【问题讨论】:
-
您的答案中的“但它没有用”没有帮助。请以简化版本添加您尝试过的代码,以便您可以将其添加到问题本身中(您的问题下方有一个编辑按钮)。当然,该库有效,您必须找出您犯了什么错误。如果您出示您的代码,我们只能提供帮助。
-
我已经添加了我在我的问题中使用的代码,很抱歉我没有在第一次发布它。
-
好的,现在我们需要知道您实际遇到了什么错误。同样“但它没有用”没有帮助,我们需要一个特定的错误消息。
-
我的猜测是库无法连接到 smtp 服务器。您将“localhost”配置为 SMTP 服务器...您确定该系统上运行着 SMTP 服务器吗?并且您拥有正确的身份验证凭据?
标签: php function email security smtp