Как проверить наличие электронной почты? - PullRequest
1 голос
/ 22 июля 2011

Я использую функцию php mail и у меня есть форма с полем имени, полем телефона, полем электронной почты и полем сообщения, которое является текстовой областью. Поле электронной почты (вместе с полем имени и телефона) отображается в сообщении и не используется для отправки электронной почты на этот адрес. Поля To: и subject: fields и заголовок From: являются статическими в скрипте и предназначены для того, чтобы всегда быть одинаковыми.

Недавно я пытался внедрить электронную почту в свой собственный сценарий, чтобы потом узнать, работают ли мои превентивные меры или нет.

Я пытался положить в поля % 0ATo: mysecondemailaddress@provider.com, а также% 0ACc: mysecondemailaddress@provider.com, но электронное письмо даже не отправляется на правильный адрес электронной почты. Мне просто интересно, каков правильный способ сделать это, а также когда я использую превентивные методы, такие как идентификация строк и либо удаление их, либо отказ в отправке электронного письма, какие символы, такие как%, также следует искать ?

1 Ответ

1 голос
/ 03 апреля 2012

Не похоже, что использование формы для непосредственного ввода впрыска работает очень хорошо.Я использую следующее , чтобы проверить почтовую программу, которую я собираю, она отправляет данные из скрипта.$postData необходимо изменить в соответствии с вашей формой.Это просто BCC "жертва":

<?php

    $postData = 
        'contactname=Lord+Sauron&'.
        'email=darklord@ciplit.com.au%0ABcc:frodo@ciplit.com.au'.
        '&message=Sorry+about+that+whole+ring+thing.+No+hard+feelings%3F';

    $url = 'http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']).'/onetrueformmailer.php';

    $result = do_post_request($url, $postData);

    echo($result);




    // http://wezfurlong.org/blog/2006/nov/http-post-from-php-without-curl/
    function do_post_request($url, $data, $optional_headers = null) {
        $params = array('http' => array(
            'method' => 'POST',
            'content' => $data
        ));
        if ($optional_headers !== null) {
            $params['http']['header'] = $optional_headers;
        }
        $ctx = stream_context_create($params);
        $fp = @fopen($url, 'rb', false, $ctx);
        if (!$fp) {
            throw new Exception("Problem with $url, $php_errormsg");
        }
        $response = @stream_get_contents($fp);
        if ($response === false) {
            throw new Exception("Problem reading data from $url, $php_errormsg");
        }
        return $response;
    }

?>
...