【发布时间】:2013-12-26 03:01:13
【问题描述】:
我正在创建一个带有复选框、几个输入选项卡和一个文本输入部分的简单邮件表单。它使用 PHP 来检索信息,然后通过电子邮件将其发送到特定的电子邮件。现在我有它通过电子邮件发送到我自己的雅虎电子邮件只是为了测试。当我在我的托管帐户 jacobbuller.com/testsites/peacock/contact.php 上测试该站点时,该表单可以完美运行并从我的通用“theski”服务器电子邮件转发电子邮件。但是,当我将网站上传到 peacockautoservice.com 的实际实时托管帐户时,联系表格会起作用 - 它会执行并在 url 中发送一个 ?msg=1 变量 - 但我从未在我的雅虎帐户中收到电子邮件......
这是我用来发送电子邮件的 PHP。
<?php ob_start();
<?php
$required_field = array('name', 'email', 'message');
foreach($required_field as $fieldname) {
if (!isset($_POST[$fieldname])) {
$errors[] = $fieldname;
}}
if (empty($errors)) {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$contact = $_POST['contact'];
$phone = $_POST['phone'];
$services = IsChecked('checkboxes', 'factory');
$services .= IsChecked('checkboxes', 'timing belt');
$services .= IsChecked('checkboxes', 'brakes');
$services .= IsChecked('checkboxes', 'computerized');
$services .= IsChecked('checkboxes', 'steering and suspension');
$services .= IsChecked('checkboxes', 'heating and air');
$services .= IsChecked('checkboxes', 'electrical');
$services .= IsChecked('checkboxes', 'other');
$body = "Customer:" . $name;
$body.= "Phone Number:" . $phone;
$body.= "Contact:" . $contact;
$body.= "Services:" . $services;
$body.= "Message:" . $message;
$to = "jcbbuller@yahoo.com";
$subject = "Peacock Auto Services Inquirey";
$from = $email;
$mailed = mail($to, $subject, $body, $from) or die("Error!");
}
if($mailed) {
redirect_to("../contact.php?msg=1");
}
?>
<?php
// IsChecked FUNCTION - Detemines what checkbox are/aren't checked on form.
function IsChecked($postname, $value){
if(!empty($_POST[$postname])) {
foreach($_POST[$postname] as $job) {
if ($job == $value) {
$project = " ". $value . " ";
return $project;
}
}
}
} //END IsChecked FUNCTION
function redirect_to( $location = NULL ) {
if ($location != NULL) {
header("Location: {$location}");
exit;
}
}
?>
<?php ob_end_flush(); ?>
如果您发现上面的 PHP 有问题,或者您知道他们的 GoDaddy 托管帐户为什么没有执行电子邮件,请告诉我。我尝试使用他们的客户服务网络,但他们说他们无法帮助我处理我的代码...
【问题讨论】:
-
如果它在测试站点上运行但在生产站点上运行,则问题可能与生产站点上的 PHP 或 SMTP 配置有关。从上面的脚本中我们无法得知。
-
检查垃圾邮件文件夹。然后停止使用
mail()函数。使用 PHPMailer/Swiftmailer。 -
如果我不能单独通过我的 PHP 解决问题,我会尝试其中一种
标签: php forms validation webforms