zoukankan      html  css  js  c++  java
  • PHP基础回顾之E-mail(四)

    PHP的mail()函数

    PHP 简易 E-Mail
    通过 PHP 发送电子邮件的最简单的方式是发送一封文本 email。

    <?php
    $to = "someone@example.com";         // 邮件接收者
    $subject = "参数邮件";                // 邮件标题
    $message = "Hello! 这是邮件的内容。";  // 邮件正文
    $from = "someonelse@example.com";   // 邮件发送者
    $headers = "From:" . $from;         // 头部信息设置
    mail($to,$subject,$message,$headers);
    echo "邮件已发送";
    ?>
    

    PHP Mail 表单
    通过 PHP,可以在自己的站点制作一个反馈表单。下面的实例向指定的 e-mail 地址发送了一条文本消息:

    <html>
    <head>
    <meta charset="utf-8">
    <title>菜鸟教程(runoob.com)</title>
    </head>
    <body>
    <?php
    if (isset($_REQUEST['email'])) { // 如果接收到邮箱参数则发送邮件
    // 发送邮件
        $email = $_REQUEST['email'] ;
        $subject = $_REQUEST['subject'] ;
        $message = $_REQUEST['message'] ;
        mail("someone@example.com", $subject,
        $message, "From:" . $email);
        echo "邮件发送成功";
    } else { // 如果没有邮箱参数则显示表单
        echo "<form method='post' action='mailform.php'>
        Email: <input name='email' type='text'><br>
        Subject: <input name='subject' type='text'><br>
        Message:<br>
        <textarea name='message' rows='15' cols='40'>
        </textarea><br>
        <input type='submit'>
        </form>";
    }
    ?>
    </body>
    </html>
    

    PHP 防止 E-mail 注入
    防止 e-mail 注入的最好方法是对输入进行验证。增加检测表单中 email 字段的输入验证程序:

    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    </head>
    <body>
    <?php
    function spamcheck($field)
    {
        // filter_var() 过滤 e-mail
        // 使用 FILTER_SANITIZE_EMAIL
        $field=filter_var($field, FILTER_SANITIZE_EMAIL);
        //filter_var() 过滤 e-mail
        // 使用 FILTER_VALIDATE_EMAIL
        if(filter_var($field, FILTER_VALIDATE_EMAIL))
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }
    
      if (isset($_REQUEST['email']))
    

    {
    // 如果接收到邮箱参数则发送邮件

        // 判断邮箱是否合法
        $mailcheck = spamcheck($_REQUEST['email']);
        if ($mailcheck==FALSE)
        {
            echo "非法输入";
        }
        else
        {    
            // 发送邮件
            $email = $_REQUEST['email'] ;
            $subject = $_REQUEST['subject'] ;
            $message = $_REQUEST['message'] ;
            mail("someone@example.com", "Subject: $subject",
            $message, "From: $email" );
            echo "Thank you for using our mail form";
        }
    }
    else
    { 
        // 如果没有邮箱参数则显示表单
        echo "<form method='post' action='mailform.php'>
        Email: <input name='email' type='text'><br>
        Subject: <input name='subject' type='text'><br>
        Message:<br>
        <textarea name='message' rows='15' cols='40'>
        </textarea><br>
        <input type='submit'>
        </form>";
    }
    ?>
    
    </body>
    </html>
    
  • 相关阅读:
    FileZilla Server下载及安装
    FileZilla Server设置虚拟目录
    FileZilla Server超详细配置
    Freaktab将于12月底关闭
    Thinkpad笔记本指点杆(小红点)自动漂移的问题
    STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解)
    STC12C5A56S2和DS12C887做的电子闹铃
    联盛德 HLKW806 (九): 软件SPI和硬件SPI驱动ST7789V液晶LCD
    联盛德 HLKW806 (六): I2C驱动SSD1306 128x64 OLED液晶屏
    联盛德 HLKW806 (五): W801开发板上手报告
  • 原文地址:https://www.cnblogs.com/smileyqp/p/12675410.html
Copyright © 2011-2022 走看看