Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как отправить ответное письмо на почту?
 
 автор: Ванек2010   (23.05.2010 в 09:02)   письмо автору
 
 

Доброе утро, я не совсем понимаю, как происходит отправка..
Вот нашел готовое решение
// _____________________________________________________________________________
<? function sd_email_get_data($_smtp_conn)// отправка данных по smtp протоколу
$r='';
  while(
$str=fgets($_smtp_conn,515))
  { 
$r.=$str;
    if(
substr($str,3,1)==' ') { break; }
  }
  return 
$r;
}
// _____________________________________________________________________________
function sd_email_command($_handle,$_command)
fputs($_handle,$_command."\n");
  
$r='<strong>'.$_command.'</strong> - '.nl2br(sd_email_get_data($_handle));
  return 
$r;
}
// _____________________________________________________________________________
function sd_email($_mail,$_title='Вам письмо',$_text='Текст не указан')// отправка письма
// _email - кому
// _title - заголовок письма
// _text - текст письма
{ if ($_mail!='')// если email указан, то отправляем письмо
  
$config=project_config();// загрузка настроек проекта
    /*
    $smtp_server="smtp.mail.ru";
    $port=25;
    $mydomain="myserver.com";
    $username="user";
    $password="password";
    $sender="me@myserver.com";
    $recipient="joe@company.com";
    $subject="test";
    $content="test";
    */
    // Initiate connection with the SMTP server
    
$h=fsockopen($config['email_server_smtp'],$config['email_server_smtp_port']);// соединяемся с SMTP сервером
    // $data=sd_email_get_data($h);
    
$s='';
    
$s.=sd_email_command($h,'HELO '.$config['email_server_smtp']);
    
$s.=sd_email_command($h,'AUTH LOGIN');
    
$s.=sd_email_command($h,base64_encode($config['email_login']));
    
$s.=sd_email_command($h,base64_encode($config['email_password']));
    
$s.=sd_email_command($h,'MAIL FROM:<'.$config['email_login'].'>');
    
$s.=sd_email_command($h,'RCPT TO:<'.$_mail.'>');
    
$s.=sd_email_command($h,'DATA');
    
$head='';
    
$head.='Date: '.date("D, j M Y G:i:s").' +0700'."\n";
    
$head.='From:'.$config['email_login']."\n";
    
$head.='To: '.$_mail."\n";
    
$head.='Content-type: text/plain; charset="utf-8"'."\n";// поддержка кодировки UTF8
    
$head.='X-Mailer: SD PHP'."\n";
    
$head.='Subject: '.$_title."\n\n";
    
$head.=$_text."\n.\n";
    
$s.=sd_email_command($h,$head);
    
$s.=sd_email_command($h,'QUIT');
    
// sd_db_event(ev_log,0,'Отправлено письмо по адресу: '.$_mail.'. Заголовок: '.$_title);
  
}
  return 
$s;
}

Какой принцип отправки? Я зарегистрировал себе домен, и хостнг, ни каких почтовых сервисов не подключал, могу ли я без них отправлять письма кому либо? и я с помощью этого кода, как бы авторизуюсь а потом только отправляю да?

  Ответить  
 
 автор: Ванек2010   (23.05.2010 в 10:29)   письмо автору
 
   для: Ванек2010   (23.05.2010 в 09:02)
 

Народ помогите, дело то срочное..
Что куда надо вводить нихира не пойму

  Ответить  
 
 автор: Trianon   (23.05.2010 в 10:58)   письмо автору
 
   для: Ванек2010   (23.05.2010 в 09:02)
 

(грустно так...)
Протокол передачи сообщений SMTP - RFC-5321 (Перевод RFC-5321).
Формат самого e-mail сообщения - - - - RFC-5322 (Перевод RFC-5322).

  Ответить  
 
 автор: Ванек2010   (23.05.2010 в 11:28)   письмо автору
 
   для: Trianon   (23.05.2010 в 10:58)
 

25 листов еще и на англ, вы зверь

  Ответить  
 
 автор: Trianon   (23.05.2010 в 11:31)   письмо автору
 
   для: Ванек2010   (23.05.2010 в 11:28)
 

Я - зверь. Еще и на англ.
Там слово перевод подчеркнуто. Видите?
Окей. Я - зверь. А Вы - кто?
Крайне желательно тоже чтоб одним словом.


"Я тут рецепт нашел... и духовка, как ни странно, имеется... Научите меня яблочный штрудель печь. "

  Ответить  
 
 автор: Valick   (23.05.2010 в 12:15)   письмо автору
 
   для: Trianon   (23.05.2010 в 11:31)
 

Я - зверь.
:)

  Ответить  
 
 автор: Ванек2010   (23.05.2010 в 15:50)   письмо автору
 
   для: Trianon   (23.05.2010 в 11:31)
 

Я делал по этой статьи http://habrahabr.ru/blogs/php/26518/
Скачал программку sandmail, настроил под свою почту на mail.ru, в натройках php.ini сделал как там написано, отправляю письмо
01 <html xmlns="http://www.w3.org/1999/xhtml">

02 <head>

03 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

04 <title>Simple Mail</title>

05 </head>

06 <body>

07 
08 <?php  $addr $_POST['addr'];

09 $theme $_POST['theme'];

10 $text $_POST['text'];

11 if (isset($addr) && isset($theme) && isset($text)

12         && $addr != "" && $theme != "" && $text != "") {

13     if (mail($addr$theme$text"From: <a href="mailto:vova_33@mail.ru">vova_33@mail.ru</a>")) {

14         echo "<h3>Сообщение отправлено</h3>";

15     }

16     else {

17         echo "<h3>При отправке сообщения возникла ошибка</h3>";

18     }

19 }

20 ?>

21 <form action="mailer.php" method="post">

22 <p>

23     <label for="addr">eMail:</label>

24     <input type="text" name="addr" id="addr" size="30" />

25 </p>

26 <p>

27     <label for="theme">Тема письма:</label>

28     <input type="text" name="theme" id="theme" size="30" />

29 </p>

30 <p>

31     <label for="text">Текст письма:</label>

32     <textarea rows="10" cols="20" name="text" id="text"></textarea>

33 </p>

34 <p>

35     <input type="submit" value="Отправить" />

36 </p>

37 </form>

38 </body>

39 </html>

Пишет Успешно отправленно, но не чего не приходит на 3 почты пробывал, в чем ошибка?

  Ответить  
 
 автор: Николай2357   (23.05.2010 в 16:22)   письмо автору
 
   для: Ванек2010   (23.05.2010 в 15:50)
 

Ппробуйте так. Может не зря старался...

  Ответить  
 
 автор: Ванек2010   (23.05.2010 в 20:57)   письмо автору
 
   для: Николай2357   (23.05.2010 в 16:22)
 

Я прочел, скажите, верно еслия сделаю только так

<?php

        
if(substr(PHP_OS03) == "WIN")
        
$n "\r\n";
        else
        
$n "\n";
         
   
$to 'email@mail.ru';      
   
$from 'email@yandex.ru';
   
$subject 'Табе пакет';
   
$subject '=?utf-8?b?'base64_encode($subject) .'?=';
   
$headers 'Content-type: text/plain; charset="utf-8"'$n;
   
$headers .= 'From: <'$from .'>'$n;
   
$headers .= 'MIME-Version: 1.0'$n;
   
$headers .= 'Date: 'date('D, d M Y h:i:s O') . $n;
   
$message 'Вот такое вот письмо';
  
   
mail($to$subject$message$headers); 
mail($to$subject$message$headers'-f'$from );

И все?

  Ответить  
 
 автор: tvv123456   (23.05.2010 в 23:14)   письмо автору
 
   для: Ванек2010   (23.05.2010 в 20:57)
 

>Я прочел, скажите, верно еслия сделаю только так
уже нет. У вас в функия mail уже на 5 параметров пошла:
mail($to, $subject, $message, $headers, '-f'. $from );


а мануал гласит 3 обязателных и четрвертый(заголовки) по вашему желанию(тоже обязатльны)\

  Ответить  
 
 автор: sim5   (24.05.2010 в 03:41)   письмо автору
 
   для: tvv123456   (23.05.2010 в 23:14)
 

>нет. У вас в функия mail уже на 5 параметров пошла

Это не так, -femail для того, чтобы не подменялся адрес отправителя, хотя зачастую об этом хостера просить приходится.

  Ответить  
 
 автор: Ванек2010   (24.05.2010 в 12:08)   письмо автору
 
   для: sim5   (24.05.2010 в 03:41)
 

Блин ну в чем проблема? Сделал все как написано, сообщение не приходит..

  Ответить  
 
 автор: sim5   (24.05.2010 в 12:20)   письмо автору
 
   для: Ванек2010   (24.05.2010 в 12:08)
 

Ну, если судить не коду, то не все как нужно - зачем дважды вызов функции mail? Хотя это не ошибка, это лишнее.
Не проходит с чего? В чем вы проверяете отправку писем?

  Ответить  
 
 автор: Ванек2010   (24.05.2010 в 12:41)   письмо автору
 
   для: sim5   (24.05.2010 в 12:20)
 

Да то лишнее убрал, оно и не мешало.
Что значит в чем? Пришло письмо на почту или не пришло вот и проверка)
Ав коде, если $mail = true то отправлено правльно

  Ответить  
 
 автор: sim5   (24.05.2010 в 12:48)   письмо автору
 
   для: Ванек2010   (24.05.2010 в 12:41)
 

$mail = true, это еще не значит гарантия.
А то и значит - вы проверяте свой скрипт на реальном сервере или на локальном компьютере? Если последнее, то ваш локальный сервер, это Денвер?
Если Денвер, то его Sendmail по умолчанию работает как заглушка, не отправляя реально почту, а складывая почтовые отправления в папку tmp\!sendmail сервера. В этой папке вы можете и обнаружить свои отправления как файлы с расширением .eml, просмотреть их, включая тело сообщения, на наличие ошибок, и отправить их по назначению.

  Ответить  
 
 автор: Ванек2010   (24.05.2010 в 12:56)   письмо автору
 
   для: sim5   (24.05.2010 в 12:48)
 

Делаю на реальном сервер.
Я делал по этой статье http://habrahabr.ru/blogs/php/26518/
Там написано, необходимо поставить прогу sendmail для отправки не по локалу.
Я настроил ее как надо, но не отправляет..

  Ответить  
 
 автор: sim5   (24.05.2010 в 12:58)   письмо автору
 
   для: Ванек2010   (24.05.2010 в 12:56)
 

У вас что свой выделенный сервер?

  Ответить  
 
 автор: Ванек2010   (24.05.2010 в 13:00)   письмо автору
 
   для: sim5   (24.05.2010 в 12:58)
 

Да выделеный сервер VDS, 1000 р в месяц

  Ответить  
 
 автор: Trianon   (24.05.2010 в 13:12)   письмо автору
 
   для: Ванек2010   (24.05.2010 в 13:00)
 

если у Вас свой сервер (и очевидно свой домен) зачем Вам mail.ru?
И если совершенно очевидно, что домен Ваш - не yandex.ru, то почему Вы пытаетесь заставить Ваш сервер отправлять почту от имени яндекса, а не от своего собственного?
И что говорит сисадмин сервера?

  Ответить  
 
 автор: Ванек2010   (24.05.2010 в 13:26)   письмо автору
 
   для: Trianon   (24.05.2010 в 13:12)
 

Да домен тоже платный, я просто не пойму что надо делать, этот VDS сервер под online игру, ну я туда и сайт сразу запер, мне предоставили https://cp.justhost.in.ua/manager/ панель свою там.. но я если честно не разобрался. Пошел юзать форумы, прочел что нужен почтовый сервер, есть платные есть бесплатные, я конечно платить по 150 р за почту в месяц не хочу, поэтому выбрал на mail.ru, как сделать чтобы почта@мой_домен.ru было бесплатно я незнаю..

Ванек (09:04:58 23/05/2010)
Доброе утро, не подскажите, что нужно, для того, чтобы мои пользователи при регистрации получали письма, от моей почты? Нужно какой-то почтовой сервис добавлять?


Ванек (09:05:07 23/05/2010)
помимо самого кода на странице


Host (09:52:39 23/05/2010)
Конечно, нужно почтовый сервер ставить


Ванек (09:52:58 23/05/2010)
мм, а где я его могу взять? 


Host (09:53:09 23/05/2010)
в интернете


Ванек (09:53:30 23/05/2010)
а это что https://cp.justhost.in.ua/manager/ispmgr


Ванек (09:53:34 23/05/2010)
это не то?


Host (09:54:03 23/05/2010)
сайт установлен на вашем VDS?


Ванек (09:54:10 23/05/2010)
Да


Host (09:54:32 23/05/2010)
Тогда никакого отношения к ISPmanager панели не имеет


Host (09:54:54 23/05/2010)
если только у вас сайт может использовать smtp сервер 


Host (09:55:15 23/05/2010)
если нет - то только ставить почтовый сервер и с помощью sendmail отправлять


Ванек (09:55:38 23/05/2010)
ладно попробую сделать второе


Host (09:56:04 23/05/2010)
проверьте сначало, у вас в настройках сайта речь нигде не идёт про smtp? 


Ванек (09:56:48 23/05/2010)
в config.php или где


Host (09:57:22 23/05/2010)
без понятия

  Ответить  
 
 автор: Николай2357   (24.05.2010 в 11:55)   письмо автору
 
   для: Ванек2010   (23.05.2010 в 20:57)
 

Не всегда этого достаточно. Допустим адрес "от кого" лучше делать составным
<?
$headers 
.= 'From: '$from .' <'$from .'>'$n;

И желательно кодировать само тело письма.

  Ответить  
 
 автор: neadekvat   (23.05.2010 в 12:18)   письмо автору
 
   для: Trianon   (23.05.2010 в 10:58)
 

Хороший способ учить технический английский, имея и исходник и хороший перевод (переводчик то понятное дело ахинею выдавать будет :) )

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования