Отправка почты

Discussion in 'PHP' started by Кукла, 25 Mar 2006.

  1. Кукла

    Кукла New Member

    Joined:
    25 Mar 2006
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    Подскажите кто-нибудь скрипт для отправки почты из формы, через удаленный Smtp сервер. Вроде бы все понятно, но как прописать сервер не заю.
     
  2. donetsk

    donetsk Elder - Старейшина

    Joined:
    30 Jan 2006
    Messages:
    158
    Likes Received:
    14
    Reputations:
    2
    Из какой именно формы приложени, веб формы?
    Отправка почты с атачем с использованием какой либо почтовой програмы, или отправка почты чтобы узер не видил ентого?
    Уточни плиз
     
  3. Utochka

    Utochka Elder - Старейшина

    Joined:
    21 Dec 2005
    Messages:
    495
    Likes Received:
    106
    Reputations:
    54
    Если есть shell залей туды скрипт для отправки почты и все!
     
  4. Кукла

    Кукла New Member

    Joined:
    25 Mar 2006
    Messages:
    5
    Likes Received:
    0
    Reputations:
    0
    to DONETSC:
    Да не обязательно с атачем, просто я не знаю как в коде должна выгледеть строчка с указанием сервера, пофиг что и куда слать. Просто я сейчас на бесплатном хосте, ну а там как обычно SMTP прикрыт из-за спамеров)))
     
  5. xPow

    xPow New Member

    Joined:
    23 Jun 2005
    Messages:
    26
    Likes Received:
    0
    Reputations:
    0
    заюзай скрипт для работы с smtp из библиотеки PEAR (http://pear.php.net/)
    или смотри это: http://php.net/mail
    там в примере есть, то что тебе нужно ;)
     
  6. drmist

    drmist Member

    Joined:
    8 Oct 2005
    Messages:
    307
    Likes Received:
    94
    Reputations:
    80
    может лучше использовать mail() вместо сокетов и удаленного смтп?
    Или Вы просто хотите чтобы за Вас все написали? Не прокатит. Давай в студию - что уже готово.
     
  7. qBiN

    qBiN Вот такой вот я :(

    Joined:
    20 Jan 2005
    Messages:
    834
    Likes Received:
    73
    Reputations:
    33
    fsockopen
     
  8. fram

    fram New Member

    Joined:
    24 Jul 2005
    Messages:
    39
    Likes Received:
    1
    Reputations:
    0
    <?php
    class Mail
    {
    // создаем переменные, в которых хранится содержимое заголовков
    var $to = '';
    var $from = '';
    var $reply_to = '';
    var $cc = '';
    var $bcc = '';
    var $subject = '';
    var $msg = '';
    var $validate_email = true;
    // проверяет допустимость почтовых адресов
    var $rigorous_email_check = true;
    // проверяет допустимость доменных имен по записям DNS
    var $allow_empty_subject = false;
    // допустимость пустого поля subject
    var $allow_empty_msg = false;
    // допустимость пустого поля msg

    var $headers = array();
    /* массив $headers содержит все поля заголовка, кроме to и subject*/

    function check_fields()
    /* метод, проверяющий, переданы ли все значения заголовков
    и проверку допустимости почтовых адресов */
    {
    if(empty($this -> to))
    {
    return false;
    }
    if(!$this -> allow_empty_subject && empty($this -> subject))
    {
    return false;
    }
    if(!$this -> allow_empty_msg && empty($this -> msg))
    {
    return false;
    }
    /* если есть дополнительные заголовки, помещаем их в массив $headers*/
    if(!empty($this -> from))
    {
    $this->headers[] = "From: $this -> from";
    }
    if(!empty($this -> reply_to))
    {
    $this -> headers[] = "Reply_to: $this -> reply_to";
    }
    // проверяем допустимость почтового адреса
    if ($this -> validate_email)
    {
    if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $this -> to))
    {
    return false;
    }
    return true;
    }
    }

    function send()
    /* метод отправки сообщения */
    {
    if(!$this -> check_fields()) return true;
    if (mail($this -> to, htmlspecialchars( stripslashes(trim($this -> subject))),
    htmlspecialchars(stripslashes(trim($this -> msg)))))
    {
    return true;
    }else{
    return false;
    }
    }
    }
    ?>

    Проверочный скрипт (senmail.php)

    <?php
    include("./mail_class.php");
    $mail = new Mail();
    $mail -> to = "[email protected]";
    //сюда подставляется реальный адрес
    $mail -> subject = "test";
    $mail -> msg = "testing...";
    $mail -> msg = "testing...";
    $mail -> rigorous_email_check = 0;
    if($mail->send()){
    echo("Success");
    }else{
    echo("error");
    }
    echo("<br>");
    echo($mail -> msg);
    ?>
     
  9. ZaCo

    ZaCo Banned

    Joined:
    20 Jun 2005
    Messages:
    737
    Likes Received:
    336
    Reputations:
    215
    зачем отвечать на тему котора только что была??
    2fram это было жестоко