Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программируем на PHP - вопросы и ответы. Скажите, а как послать мейл?


Рассылка "Программирование на php. Вопросы и ответы"

"Что делать со своим сайтом дальше?"

У Вас есть сайт, но абсолютно нет времени его развивать и продолжать нести его расходы?

Что делать?

Поставь свой Сайт на Самоокупаемость!


Скажите, а как послать мейл?

Здравствуйте, php любители и профессионалы!

Сегодня в выпуске.

0.    Приветствие

1.    Статистика php форума «уже 375 сообщений…»

2.    Подробный ответ на php вопрос. Избранное «Скажите, а как послать мейл?»

3.    Список php вопросов для наших экспертов.

4.    Вопрос номера «Что мне нужно вставить на страничку?»

5.    Наши модераторы: Seadog, NickGray, ZzzMMTT, Juice, BERKUT, Magir (ПРИСОЕДИНИСЬ к команде php форума)

6.    P.S.

Приветствие

Вас приветствует очередной выпуск рассылки «Программирование на php в вопросах и ответах».

Сегодня у нас очень интересные php тонкости.

Если у вас возникают вопросы по поводу вашей php деятельности, смело задавайте их на нашем php форуме и получайте нужные ответы

Статистика php форума

 

 Кто сейчас на форуме

 

Наши пользователи оставили сообщений: 375
Всего зарегистрированных пользователей: 117
Последний зарегистрированный пользователь: Fre

Сейчас посетителей на форуме: 11, из них зарегистрированных: 5, скрытых: 0 и гостей: 4   [ Администратор ]   [ Модератор ]
Больше всего посетителей (13) здесь было 23 Сен 2007 03:21 am
Зарегистрированные пользователи: MMS, phper, Seadog, evgenijj, Juice

 

 

PHP. Распространённые вопросы и ответы

 

 

Подробный ответ на php вопрос. Избранное

Скажите, а как послать мейл?

Скажите, а как послать мейл? Я смотрел в доке, там единственно что есть, этофункция mail("Кому", "Сабж", "ТелоПисьма");Когда запускаю эту функцию, ПеХеПе выдаёт Unknown Error. Мой ПеХеПе под Вин32. Может, там модуль нужно подключить? Hrom

Отвечает консультант и модератор php форума Magir

Я пользуюсь функцией из phpBB:

smtp.php (лицензия GPLv2):

Код:


<?php
/***************************************************************************
 *                              smtp.php                           
 *                       -------------------                        
 *   begin                : Wed May 09 2001                           
 *   copyright            : (C) 2001 The phpBB Group                  
 *   email                :
support@phpbb.com                        
 *                                                         
 *   $Id: smtp.php,v 1.16.2.2 2002/12/22 15:09:17 psotfx Exp $            
 *                                                         
 ***************************************************************************/

/***************************************************************************
 *                                                         
 *   This program is free software; you can redistribute it and/or modify   
 *   it under the terms of the GNU General Public License as published by   
 *   the Free Software Foundation; either version 2 of the License, or      
 *   (at your option) any later version.                           
 *                                                         
 ***************************************************************************/
function server_parse($socket, $response)
{
   while ( substr($server_response,3,1) != ' ' )
   {
      if( !( $server_response = fgets($socket, 256) ) )
      {
         echo "
Системная ошибка CGMSRC.";
      }
   }

   if( !( substr($server_response, 0, 3) == $response ) )
   {
      echo "
Системная ошибка RIPSM: $server_response.";
   }
}

/****************************************************************************
*   Function:       smtpmail                                    
*   Description:    This is a functional replacement for php's builtin mail   
*                  function, that uses smtp.                     
*   Usage:         The usage for this function is identical to that of php's
*                  built in mail function.                        
****************************************************************************/

function smtpmail($mail_to, $subject, $message, $headers = "")
{
   $smtp_host='
Адрес сервера';
   $smtp_username='
Логин';
   $smtp_password='
Пароль';
   $board_email='E-Mail';

   //
   // Fix any bare linefeeds in the message to make it RFC821 Compliant.
   //
   $message = preg_replace("/(?<!\r)\n/si", "\r\n", $message);
   if ($headers != "")
   {
      if(is_array($headers))
      {
         if(sizeof($headers) > 1)
         {
            $headers = join("\r\n", $headers);
         }
         else
         {
            $headers = $headers[0];
         }
      }
      $headers = chop($headers);

      //
      // Make sure there are no bare linefeeds in the headers
      //
      $headers = preg_replace("/(?<!\r)\n/si", "\r\n", $headers);
      //
      // Ok this is rather confusing all things considered,
      // but we have to grab bcc and cc headers and treat them differently
      // Something we really didn't take into consideration originally
      //
      $header_array = explode("\r\n", $headers);
      @reset($header_array);
      $headers = "";
      while( list(, $header) = each($header_array) )
      {
         if( preg_match("/^cc:/si", $header) )
         {
            $cc = preg_replace("/^cc:(.*)/si", "\\1", $header);
         }
         else if( preg_match("/^bcc:/si", $header ))
         {
            $bcc = preg_replace("/^bcc:(.*)/si", "\\1", $header);
            $header = "";
         }
         $headers .= $header . "\r\n";
      }
      $headers = chop($headers);
      $cc = explode(",", $cc);
      $bcc = explode(",", $bcc);
   }
   if($mail_to == "")
   {
   echo "no mail";
      return;
   }
   if(trim($subject) == "")
   {
   echo "no subj";
      return;
   }
   if(trim($message) == "")
   {
   echo "no msg";
      return;
   }
   $mail_to_array = explode(",", $mail_to);

   //
   // Ok we have error checked as much as we can to this point let's get on
   // it already.
   //
   if( !$socket = fsockopen($smtp_host, 25, $errno, $errstr, 20) )
   {
      echo "
Системная ошибка CCSS.";
   }
   server_parse($socket, "220");

   if( !empty($smtp_username) && !empty($smtp_password) )
   {
      // Send the RFC2554 specified EHLO.
      // This improved as provided by SirSir to accomodate
      // both SMTP AND ESMTP capable servers
      fputs($socket, "EHLO " . $smtp_host . "\r\n");
      server_parse($socket, "250");

      fputs($socket, "AUTH LOGIN\r\n");
      server_parse($socket, "334");
      fputs($socket, base64_encode($smtp_username) . "\r\n");
      server_parse($socket, "334");
      fputs($socket, base64_encode($smtp_password) . "\r\n");
      server_parse($socket, "235");
   }
   else
   {
      // Send the RFC821 specified HELO.
      fputs($socket, "HELO " . $smtp_host . "\r\n");
      server_parse($socket, "250");
   }

   // From this point onward most server response codes should be 250
   // Specify who the mail is from....
   fputs($socket, "MAIL FROM: <" . $board_email . ">\r\n");
   server_parse($socket, "250");

   // Specify each user to send to and build to header.
   $to_header = "To: ";
   @reset( $mail_to_array );
   while( list( , $mail_to_address ) = each( $mail_to_array ))
   {
      //
      // Add an additional bit of error checking to the To field.
      //
      $mail_to_address = trim($mail_to_address);
      if ( preg_match('/[^ ]+\@[^ ]+/', $mail_to_address) )
      {
         fputs( $socket, "RCPT TO: <$mail_to_address>\r\n" );
         server_parse( $socket, "250" );
      }
      $to_header .= ( ( $mail_to_address != '' ) ? ', ' : '' ) . "<$mail_to_address>";
   }
   // Ok now do the CC and BCC fields...
   @reset( $bcc );
   while( list( , $bcc_address ) = each( $bcc ))
   {
      //
      // Add an additional bit of error checking to bcc header...
      //
      $bcc_address = trim( $bcc_address );
      if ( preg_match('/[^ ]+\@[^ ]+/', $bcc_address) )
      {
         fputs( $socket, "RCPT TO: <$bcc_address>\r\n" );
         server_parse( $socket, "250" );
      }
   }
   @reset( $cc );
   while( list( , $cc_address ) = each( $cc ))
   {
      //
      // Add an additional bit of error checking to cc header
      //
      $cc_address = trim( $cc_address );
      if ( preg_match('/[^ ]+\@[^ ]+/', $cc_address) )
      {
         fputs($socket, "RCPT TO: <$cc_address>\r\n");
         server_parse($socket, "250");
      }
   }
   // Ok now we tell the server we are ready to start sending data
   fputs($socket, "DATA\r\n");

   // This is the last response code we look for until the end of the message.
   server_parse($socket, "354");

   // Send the Subject Line...
   fputs($socket, "Subject: $subject\r\n");

   // Now the To Header.
   fputs($socket, "$to_header\r\n");

   // Now any custom headers....
   fputs($socket, "$headers\r\n\r\n");

   // Ok now we are ready for the message...
   fputs($socket, "$message\r\n");

   // Ok the all the ingredients are mixed in let's cook this puppy...
   fputs($socket, ".\r\n");
   server_parse($socket, "250");

   // Now tell the server we are done and close the socket...
   
fputs($socket, "QUIT\r\n");
   fclose($socket);

   return TRUE;
}

?>



В самом начале функции задаются параметры соединения, использование аналогично mail():

Код:


include("smtp.php");
smtpmail("e-mail получателя", "тема сообщения", "сообщение");

 

Добавить свой ответ: http://phper.ru/viewtopic.php?t=123



Задать свой вопрос вы можете на php форуме

 

Список php вопросов для наших экспертов

Как поменять пароль? Я заказал у приглашенных программистов разработку базы. Вся работа сделана, я хотел быпоменять пароль для доступа к базе MySQL. Как мне это сделать? Спасибо

Сделать счетчик скачиваний Как на PHP сделать счетчик скачиваний определенного файла? И принципиально ли для счетчика по какому протоколу будет скачиваться файл?

Как будет выглядеть PHP4-скрипт? Как будет выглядеть PHP4-скрипт, записывающий все переменные отправляемые в него, в файл в формате например,если делаешь:

Код:

saver.php?name=Петя&family=Петров, то получаешь файл saver.txt, выглядеший: name=Петя?family=Петров 

Апач и ошибка 500 Установил я себе апаче, и не могу разобраться с установкой перла и php, сперва php у меня работал но после перезагрузки компа он перестал работать выдает ошибку 500 и на перл также, из-за чего она могла появится? И ещё почему сайт работает только по IP


 

Ответить на них вы можете в соответствующих топиках. (кликните мышкой на вопрос)

 

Вопрос номера

Что мне нужно вставить на страничку?

Что мне нужно вставить на страничку с расширением *.phtml чтоб она смогла мне показать содержание каталога, в котором она находится?

http://phper.ru/viewtopic.php?t=134  Узнать ответ

 

Наши модераторы

Seadog. Стал модератором – 12 октября 2007 года.

О Себе:

Имею опыт программирования на PHP
http://imtc.com.ua
http://seadog.com.ua
http://maribase.com.ua в разработке
http://seadog.e2e.ru в разработке

Найти все сообщения модератора Seadog

=======================================

NickGray. Стал модератором – 16 октября 2007 года.

Найти все сообщения модератора NickGray

=======================================

ZzzMMTT. Стал модератором – 20 октября 2007 года.

Найти все сообщения пользователя ZzzMMTT

=======================================

Juice. Стал модератором – 21 октября 2007 года.

О консультанте - модераторе:

Þ    Откуда:  Мурманск

Þ   Род занятий:  Студент

Найти все сообщения пользователя Juice

=======================================

BERKUT. Стал модератором – 21 октября 2007 года.

О консультанте - модераторе:

Þ    Откуда:  Волжский

Þ    Сайт:  http://berkut.vghost.ru

Þ   Род занятий:  Программист

Найти все сообщения пользователя BERKUT

=======================================

Magir. Стал модератором – 28 октября 2007 года.

О Себе:

Опыт PHP-программирования - более четырех лет, в данный момент профессионально этим не занимаюсь, но периодически программирую для клиентов своей хостинговой фирмы (http://magir.ru/).

Основной профиль моей деятельности - информационная безопасность.

Найти все сообщения модератора Magir

 

P.S.

На этом сегодняшний выпуск заканчиваю. До связи.

Напоминаю, что я приглашаю вас стать модератором php форума.

==========

Phper.ru - PHP. Распространённые вопросы и ответы

"Что делать со своим сайтом дальше?"

У Вас есть сайт, но абсолютно нет времени его развивать и продолжать нести его расходы?

Что делать?

Поставь свой Сайт на Самоокупаемость!
Бесплатный сайт создать || движок сайта php || Бесплатные php скрипты || самостоятельное создание сайтов || Бесплатно сделать сайт || сайт информационная безопасность || дизайн сайта Бесплатно

В избранное