всё сделал скрипт на Php сразу другая проблема как сделать

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
bobot
ст. прапорщик
Сообщения: 589
Зарегистрирован: 2008-05-28 20:03:17

всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение bobot » 2008-10-15 11:41:57

вот скрипт

Код: Выделить всё

#! /usr/local/bin/php
<?php
$to      = 'bobot@mydomen';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: admin@mydomen';
mail($to, $subject, $message, $headers);
?>
как мне сделать привязку к папке?? у меня юзера находятся в одной папке как сделать привязку к этой папке??(мне просто разослать надо им письмо!!??
Последний раз редактировалось Alex Keda 2008-10-16 8:11:02, всего редактировалось 1 раз.
Причина: Товарищщи, юзайте кнопочку [code], цените чужое время...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

MAK
ст. сержант
Сообщения: 344
Зарегистрирован: 2008-09-17 2:23:21

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение MAK » 2008-10-15 13:04:54

bobot писал(а):как мне сделать привязку к папке?? у меня юзера находятся в одной папке как сделать привязку к этой папке??(мне просто разослать надо им письмо!!??
вы издеваетесь?


zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение zg » 2008-10-30 16:27:46

ADRE писал(а)::ROFL:
да все мы так начинали -))

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение ADRE » 2008-10-31 6:27:18

угу =) извините конечно что так, но когда одно и тоже по 20 раз в день то -> :cz2:
//del

Dimon
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-12 17:40:35

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dimon » 2008-11-13 2:18:21

Непонятно что ты хочешь... Объясни подробнее

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение ADRE » 2008-11-13 9:19:44

Dimon писал(а):Непонятно что ты хочешь... Объясни подробнее
почтовую отпарвку через пхп хочет
//del

Dimon
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-12 17:40:35

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dimon » 2008-11-21 23:16:12

Код: Выделить всё

class smtp{
	
private $server;	
private $login;
private $password;
private $filename;
private $_smtp_conn;	
private $_fh;
	
	

public function __construct($server, $login, $password, $logfilename){
	
	
	$this->server = $server;
	$this->login = $login;
	$this->password = $password;
	$this->filename = $logfilename;

	
		
		if (!$this->_fh = fopen($_SERVER['DOCUMENT_ROOT'].$this->filename, "a")) {
			exit("Невозможно открыть лог файл для записи");
		} 
		
	
	
	$this->_smtp_conn = fsockopen($this->server, 25, $errno, $errstr, 10);
	
	if(!$this->_smtp_conn){
		fwrite($this->_fh, "Ошибка при открытии сокета \(".$errno." - ".$errstr."\r\n");
	}
	
	$data = $this->get_data($this->_smtp_conn)."\n";  
		
	fwrite($this->_smtp_conn,"EHLO ".$this->server."\r\n");
	fwrite($this->_fh, "EHLO ".$this->server."\n");
	
	$data .= $this->get_data($this->_smtp_conn)."\n";   
	
	fwrite($this->_smtp_conn,"AUTH LOGIN\r\n");
	fwrite($this->_fh, "AUTH LOGIN\n");
	$data .= $this->get_data($this->_smtp_conn)."\n";      
	
	fwrite($this->_smtp_conn,base64_encode($this->login)."\r\n");
	fwrite($this->_fh, base64_encode($this->login)."\n");
	$data .= $this->get_data($this->_smtp_conn)."\n";  
	
	
	fwrite($this->_smtp_conn,base64_encode($this->password)."\r\n");
	fwrite($this->_fh, base64_encode($this->password)."\n");
	$data .= $this->get_data($this->_smtp_conn)."\n";    
	
	
	fwrite($this->_fh, $data."\n");
	
}


public function __destruct() {
	
	fwrite($this->_smtp_conn,"QUIT\r\n");
	$data = $this->get_data($this->_smtp_conn);
	fclose($this->_smtp_conn);
	
	fwrite($this->_fh, $data."\n");
	fclose($this->_fh);
}

	
private function get_data()
{
  $data = "";
  while($str = fgets($this->_smtp_conn, 515))
  {
    $data .= $str;
    if(substr($str,3,1) == " ") { break; }
  }
  return $data;
}


public function mail_from($from_name, $from_mail, $rcpt_name, $rcpt_mail, $subject, $data){

	
$domain = strstr($from_mail, '@');	
	
	
$header="Date: ".date("D, j M Y G:i:s")." +0700\r\n";
$header.="From: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($from_name)))."?= <".$from_mail.">\r\n";
$header.="X-Mailer: The Bat! (v1000) Professional\r\n";
$header.="Reply-To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($from_name)))."?= <".$from_mail.">\r\n";
$header.="X-Priority: 3 (Normal)\r\n";
$header.="Message-ID: <172562218.".date("YmjHis").$domain.">\r\n";
$header.="To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($rcpt_name)))."?= <".$rcpt_mail.">\r\n";
$header.="Subject: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode($subject)))."?=\r\n";
$header.="MIME-Version: 1.0\r\n";
$header.="Content-Type: text/html; charset=windows-1251\r\n";
$header.="Content-Transfer-Encoding: 8bit\r\n";


fwrite($this->_smtp_conn,"MAIL FROM: <".$from_mail.">\r\n");
fwrite($this->_fh, "MAIL FROM: <".$from_mail.">\r\n");
$data= $this->get_data($this->_smtp_conn);  

fwrite($this->_smtp_conn,"RCPT TO: <".$rcpt_mail.">\r\n");
fwrite($this->_fh, "RCPT TO: <".$rcpt_mail.">\r\n");
$data.= $this->get_data($this->_smtp_conn);  

fwrite($this->_smtp_conn,"DATA\r\n");
$data.= $this->get_data($this->_smtp_conn);  


fwrite($this->_smtp_conn,$header."\r\n".$data."\r\n.\r\n");
$data.= $this->get_data($this->_smtp_conn);  

fwrite($this->_fh, $data."\n");

}
	
}


$smtp = new smtp(SMTP_SERVER, LOGIN, PASSWORD, SMTP_CLIENT_LOG);
$smtp->mail_from("Дмитрий", "dimon@dimon.dimon", "Дмитрий", "dimon@dimon.dimon", "Тестирование скриптов", "Все OK!")

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение zg » 2008-11-21 23:22:04

Dimon писал(а):fwrite($this->_fh, "EHLO ".$this->server."\n");
стока кода и ни одной проверки на валидность smtp команд...

Dimon
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-12 17:40:35

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dimon » 2008-11-22 0:05:49

Допиши сам.. Если на то пошло тут много чего нет.. Но согласись это лучше чем mail()

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение zg » 2008-11-22 8:37:46

Dimon писал(а):Но согласись это лучше чем mail()
назови хоть одну причину

Dimon
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-12 17:40:35

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dimon » 2008-11-23 23:38:28

zg причина только одна "localhost MTA". Я думаю достаточно. И не надо рассказывать про редактирование php.ini

zg
полковник
Сообщения: 5845
Зарегистрирован: 2007-12-07 13:51:33
Откуда: Верх-Нейвинск

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение zg » 2008-11-24 7:25:02

Dimon писал(а):zg причина только одна "localhost MTA". Я думаю достаточно.
ну да, яблоко плохое, потому что это яблоко :good:

В книге по подготовке к PHP ZCE4 целый раздел был посвящён работе с почтой и рассказывалось, что и зачем было сделано и почему это нужно. К сожалению ни на экзамен, ни в ркуводоство по ZCE PHP5 эти вопросы так не попали.

Функцией mail надо пользоваться хотя бы потому, что она предоставляет унифицированный интерфейс отправки писем. То есть тебе неважно как именно будет отправлено письмо, важно, что ты передал сообщение через универсальный интерфейс. Ты даже не будешь знать кто и как отправит письмо, важно, что ты положил его в очередь на отправку.

Затачиваясь только под SMTP ты собственоручно ограничиваешь себя. Или ты думаешь, что все сервера прям таки работают по SMTP? Нет. Ну даже пускай SMTP, объясни почему первым делом ты шлёшь "EHLO", а не "HELO"?
Dimon писал(а):И не надо рассказывать про редактирование php.ini
а что, это интимная тема? я обчно беру тектовый редактор и правлю :unknown:

Dimon
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-12 17:40:35

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dimon » 2008-11-24 12:40:13

RFC 2821 пункт 2.2
In an effort that started in 1990, approximately a decade after RFC
821 was completed, the protocol was modified with a "service
extensions" model that permits the client and server to agree to
utilize shared functionality beyond the original SMTP requirements.
The SMTP extension mechanism defines a means whereby an extended SMTP
client and server may recognize each other, and the server can inform
the client as to the service extensions that it supports.

Contemporary SMTP implementations MUST support the basic extension
mechanisms. For instance, servers MUST support the EHLO command even
if they do not implement any specific extensions and clients SHOULD
preferentially utilize EHLO rather than HELO. (However, for
compatibility with older conforming implementations, SMTP clients and
servers MUST support the original HELO mechanisms as a fallback.)
Unless the different characteristics of HELO must be identified for
interoperability purposes, this document discusses only EHLO.

SMTP is widely deployed and high-quality implementations have proven
to be very robust. However, the Internet community now considers
some services to be important that were not anticipated when the
protocol was first designed. If support for those services is to be
added, it must be done in a way that permits older implementations to
continue working acceptably. The extension framework consists of:

- The SMTP command EHLO, superseding the earlier HELO,

- a registry of SMTP service extensions,

- additional parameters to the SMTP MAIL and RCPT commands, and

- optional replacements for commands defined in this protocol, such
as for DATA in non-ASCII transmissions [33].

SMTP's strength comes primarily from its simplicity. Experience with
many protocols has shown that protocols with few options tend towards
ubiquity, whereas protocols with many options tend towards obscurity.

Each and every extension, regardless of its benefits, must be
carefully scrutinized with respect to its implementation, deployment,
and interoperability costs. In many cases, the cost of extending the
SMTP service will likely outweigh the benefit.
Вкратце на русском:
Современные реализации SMTP должны поддерживать базовые механизмы расширения. Например, сервер должен
поддерживать команды EHLO, даже если в нем не реализовано соответствующее расширение, а клиентам
рекомендуется использовать команду EHLO вместо HELO
4. В тех случаях, когда для интероперабельности не требуется явное использование HELO, настоящая спецификация всегда рассматривает только EHLO.
Достаточно?

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dirty.Eager » 2008-11-24 13:57:14

Dimon писал(а):RFC 2821 пункт 2.2
(However, for
compatibility with older conforming implementations, SMTP clients and
servers MUST support the original HELO mechanisms as a fallback.)
Вкратце на русском:
Современные реализации SMTP должны поддерживать базовые механизмы расширения. Например, сервер должен
поддерживать команды EHLO, даже если в нем не реализовано соответствующее расширение, а клиентам
рекомендуется использовать команду EHLO вместо HELO
4. В тех случаях, когда для интероперабельности не требуется явное использование HELO, настоящая спецификация всегда рассматривает только EHLO.
Достаточно?
А твой клиент поддерживает HELO as a fallback? А должен.

Dimon
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-12 17:40:35

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dimon » 2008-11-24 14:59:20

Dirty.Eager
Напоминаю, клиент был написан за 20 минут, в нем нет даже простой проверки ответа сервера..)
Нет md5 авторизации, mime и много других рюшечек.
Это скрипт не претендует на универcальность и т.д.
Как zg меня спросил так я ему и ответил.

Dimon
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-12 17:40:35

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dimon » 2008-11-24 15:01:04

Человеку помочь пытаешься, а тут критики налетели..
Сами выложите что нибудь универсальное..

Dirty.Eager
мл. сержант
Сообщения: 72
Зарегистрирован: 2008-10-25 3:05:59

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dirty.Eager » 2008-11-24 15:03:35

Dimon писал(а):Человеку помочь пытаешься, а тут критики налетели..
Сами выложите что нибудь универсальное..
Ну так
zg писал(а):Функцией mail надо пользоваться хотя бы потому, что она предоставляет унифицированный интерфейс отправки писем. То есть тебе неважно как именно будет отправлено письмо, важно, что ты передал сообщение через универсальный интерфейс.

Dimon
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-12 17:40:35

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dimon » 2008-11-24 15:11:06

Dirty.Eager
Напоминаю еще раз, не всегда на хостингах правильно настроен php.ini и MTA.
В связи с этим невозможно использовать функцию mail(), или я что то незнаю?
если как то можно обойти редактирование php.ini то я был рад.

Аватара пользователя
zingel
beastie
Сообщения: 6204
Зарегистрирован: 2007-10-30 3:56:49
Откуда: Moscow
Контактная информация:

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение zingel » 2008-11-24 15:14:03

В связи с этим невозможно использовать функцию mail(),
На хостинге, mail() отключено там, где самый сраный и дешовый тарифоный план (у всех причем), если там вообще есть php.
Z301171463546 - можно пожертвовать мне денег

Dimon
рядовой
Сообщения: 35
Зарегистрирован: 2008-07-12 17:40:35

Re: всё сделал скрипт на Php сразу другая проблема как сделать

Непрочитанное сообщение Dimon » 2008-11-24 16:49:45

Ну и я про что, а так лучше конечно mail() чем извращаться =)