.hi伙计们可以指导我如何创建一个PHP表单,使用我的域服务器提供的电子邮件向所需的收件人发送电子邮件。
<?php
if($_POST['submit'])
{
$name = $_POST['name'];
$message = $_POST['message'];
if($name&&$message)
{
$namelen = 20;
$messagelen = 300;
if(strlen($name)<=$namelen&&strlen($message)<=$messagelen)
{
$to = "myemail@yahoo.com";
$subject = "Test Email";
$headers = "From: my server provided email here";
ini_set("SMTP", "/*i placed my domain server here");
$body = "This is an email from $name\n\n$message";
mail($to, $subject, $body, $headers);
die();
}
else
die("Max length for name is $namelen, and max length for message is $messagelen.");
}
else
die("You must enter a name <u>and</u> message");
/*echo $name.' '.$message;*/
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action='mailpush.php' method='POST'>
Name:<input type='text' name='name' maxlength='20'><br>
Message:<br /><textarea name='message'></textarea><p>
<input type='submit' name='submit' value='Send me this'></p>
</form>
</body>
</html>
。这是我到目前为止的代码。但是当我试图发送时我没有收到任何东西。
答案 0 :(得分:1)
当我尝试发送时,我没有收到任何内容
所以你的问题不在于编写代码,而在于诊断它失败的原因。
首先要注意的是,您不检查mail()调用的返回值。
ini_set(“SMTP”,“/ *我将我的域名服务器放在这里”);
这是什么意思?没有“域服务器”这样的东西。有域名服务器,SMB域名主服务器,SMTP服务器......
接下来,您没有提供运行的操作系统的详细信息,也没有提供php.ini中的邮件配置:虽然您明确设置了SMTP主机(到什么?,它可以解析吗?)是什么为smtp_port设置?你能telnet到运行PHP代码的指定机器上的那个端口吗?
您的代码和邮箱之间存在大量技术问题 - 其中许多可能会导致邮件传递出现问题 - 您是否看过这些?您的本地SMTP服务器只是链中的下一个跃点,您是否检查过您的电子邮件是否已加入其中?如果是,那么它与PHP无关。