【问题标题】:sending mail with php mail() in plesk control panel在 plesk 控制面板中使用 php mail() 发送邮件
【发布时间】:2013-09-26 23:50:43
【问题描述】:

这是我的代码:

<?php
if ( isset($_POST['send']) ) {
$name = $_POST['name'];

$to = 'kiarash@gmail.com';  
$subject = 'Test Sending';
$message = 'This is Test    for sending Mail';
$header = 'Content-type: text/plain; charset="utf-8"' . "\r\n" .
                    'From: test@site.ir' . "\r\n" .
                    'Replt-To: test@site.ir' . "\r\n";

$mailsent = mail($to, $subject, $message, $header);
echo "this is mail sent---> " . $mailsent;
}
?>

还有这段 HTML 代码:

<form action="#" method="post" name="frm">
    <input type="text" name="name" />
  <input type="submit" value="send" name="send" />
</form>

我的主机在 Parallel Plesk 上...但是邮件没有发送到...

我的问题是什么?您对我有什么想法或建议吗?

这是完整的代码:

<!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>
<?php
if ( isset($_POST['send']) ) {
$name = $_POST['name'];

ini_set('error_reporting', E_ALL);
error_reporting(E_ALL);



$to = 'kiarash@gmail.com';  
$subject = 'Test Sending';
$message = 'This is Test    for sending Mail';
$header = 'Content-type: text/plain; charset="utf-8"' . "\r\n" .
                    'From: info@site.ir' . "\r\n" .
                    'Reply-To: info@site.ir' . "\r\n";

$mailsent = mail($to, $subject, $message, $header);

if($mailsent){
echo "success";
}else{
echo "not sent";
}
}
?>
<form action="#" method="post" name="frm">
    <input type="text" name="name" />
  <input type="submit" value="send" name="send" />
</form>
</body>
</html>

【问题讨论】:

  • 您检查过垃圾邮件吗?
  • echo 得到了什么?($mailsent) 是 0 还是 1
  • @KasunRajapaksha 需要注意的是,我用 echo 写的只是字符串文本!!!
  • 我正在使用带有 XHTML DOCTYPE 的页面...可能是问题所在!!!你怎么看?
  • Replt-To 看起来像是错字。但总的来说,如果您通过 PHP 发送邮件,我强烈建议您使用像 SwiftMailer 的 PHPMailer 这样的不错的邮件程序库;使用 PHP 的内置 mail() 函数总是会给你带来问题;很难相处。

标签: php email plesk


【解决方案1】:

试试这个,你的标题很时髦。对此进行了测试,它可以工作。

<?php
    ini_set('error_reporting', E_ALL);
    error_reporting(E_ALL);
?><!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>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
    <?php
    if (isset($_POST['send'])) {
        $name = $_POST['name'];
        $from = "info@site.ir";
        $to = 'kiarash@gmail.com';  
        $subject = 'Test Sending';
        $message = 'You got a message from '. $name;
        $headers = array(
            'MIME-Version: 1.0',
            'Content-Type: text/html; charset="UTF-8";',
            'Content-Transfer-Encoding: 7bit',
            'Date: ' . date('r', $_SERVER['REQUEST_TIME']),
            'From: ' . $from,
            'Reply-To: ' . $from,
            'Return-Path: ' . $from
        );
        $mailsent = mail($to, $subject, $message, implode("\n", $headers));
        if($mailsent){
            echo "success";
        }else{
            echo "not sent";
        }
    }
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" name="frm">
        <input type="text" name="name" />
        <input type="submit" value="send" name="send" />
    </form>
</body>
</html>

【讨论】:

  • 我用整页代码更新了问题...请看一下。
  • 我复制了您的代码并将其粘贴到页面中,没有任何更改,但答案仍然是((未发送))!!!我真的很困惑
  • @Kiyarash - 你是在本地主机上运行还是在实时服务器上运行?如果是本地主机,则需要安装邮件服务器。如果实时服务器创建一个新文档并输入&lt;?php echo php_info(); ?&gt; 并运行它。将内容粘贴到某处并链接到它。
  • 我在带有 plesk 控制面板的实时服务器中。亲爱的 Adelphia,我下载了 PHPMailer 并在这个框架上工作了一段时间,终于可以用服务器发送邮件了...感谢您的关注...
【解决方案2】:

试试看

ini_set('error_reporting', E_ALL);
error_reporting(E_ALL);

在 PHP 代码的顶部。

另外,替换

echo "this is mail sent---> " . $mailsent;

if($mailsent){
echo "success";
}else{
echo "not sent";
}

因为$mailsent 不是字符串,所以您不应该尝试回显它。

制作php_info() 文件并检查邮件参数也可能会有所帮助。

【讨论】:

  • 我使用了您的建议,但没有显示,error_reporting 不起作用,if 条件的答案是(未发送)!这是来自我的主机中关于 PHP_INFO() 的错误日志 [Thu Sep 26 09:40:55 2013] [warn] [client 1.111.11.111] mod_fcgid: stderr: PHP Fatal error: Call to undefined function php_info() in /第 30 行的 var/www/vhosts/site.ir/httpdocs/index.php,引用者:site.ir
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-05
  • 2011-09-27
  • 2021-01-26
  • 1970-01-01
  • 1970-01-01
  • 2011-06-05
相关资源
最近更新 更多