使用域服务器电子邮件发送电子邮件与PHP

时间:2011-06-07 07:30:20

标签: php

.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>

。这是我到目前为止的代码。但是当我试图发送时我没有收到任何东西。

1 个答案:

答案 0 :(得分:1)

  

当我尝试发送时,我没有收到任何内容

所以你的问题不在于编写代码,而在于诊断它失败的原因。

首先要注意的是,您不检查mail()调用的返回值。

  

ini_set(“SMTP”,“/ *我将我的域名服务器放在这里”);

这是什么意思?没有“域服务器”这样的东西。有域名服务器,SMB域名主服务器,SMTP服务器......

接下来,您没有提供运行的操作系统的详细信息,也没有提供php.ini中的邮件配置:虽然您明确设置了SMTP主机(到什么?,它可以解析吗?)是什么为smtp_port设置?你能telnet到运行PHP代码的指定机器上的那个端口吗?

您的代码和邮箱之间存在大量技术问题 - 其中许多可能会导致邮件传递出现问题 - 您是否看过这些?您的本地SMTP服务器只是链中的下一个跃点,您是否检查过您的电子邮件是否已加入其中?如果是,那么它与PHP无关。

相关问题