ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > БЕЗОПАСНОСТЬ_OLD > Уязвимости > E-Mail
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #11  
Старый 01.08.2007, 12:20
drmist
Green member - Level 3
Регистрация: 08.10.2005
Сообщений: 396
Провел на форуме:
400609

Репутация: 239
По умолчанию

calintz
Вам на каком языке скрипт нужен?
__________________
Никому нельзя верить...
 

  #12  
Старый 01.08.2007, 20:34
Cawabunga
Постоянный
Регистрация: 16.04.2007
Сообщений: 458
Провел на форуме:
2722721

Репутация: 364
Отправить сообщение для Cawabunga с помощью ICQ
По умолчанию

желательно php
 

  #13  
Старый 02.08.2007, 11:54
drmist
Green member - Level 3
Регистрация: 08.10.2005
Сообщений: 396
Провел на форуме:
400609

Репутация: 239
По умолчанию

Как заказывали:
Код:
<?php

/*

FIle id: mailer.class.php

Kласс посылки почты
Работает с smtp сервером через сокеты
Письма отправляются в кодировке UTF-8

 Файл global.conf.php должен содержать следующие переменные:
 
$_CONFIG["smtp_server"] - smtp сервер, через который шлется почта
$_CONFIG["smtp_port"] - порт smtp сервера
$_CONFIG["smtp_login"] - имя пользователя, под которым скрипт должен логиниться на сервере.
    Если эта переменная равна пустой строке - аудентификация не производится.
$_CONFIG["smtp_pass"] - пароль пользователя
$_CONFIG["smtp_from"] - строка, которая будет записана в заголовоки письма From и Reply-To в UTF-8.
    Может быть как просто email адресом так и строкой вида "Имя пользователя <почтовый ящик>"
	
	
	
(c) drmist\STNC, web: www.security-teams.net

*/

class Mailer {
  private $body = '';

  // конструктор
  function Mailer() {
	// ..
  }
  
  // установить текст письма
  function SetBody($body) {
    $this->body = $body;
  }
  
  // сделать замену в тексте письма
  function BodyReplace($from, $to) {
    $this->body = str_replace("%$from", $to, $this->body);
  }
  
  // разорвать соединение с SMTP сервером
  // 1 в случае успеха, 0 в случае ошибки
  private function SMTPQuit($sock) {
 	@fwrite($sock, "QUIT\r\n");
	$tmp = intval(@fgets($sock));
	@fclose($sock);
	return $tmp == 221; 
  }
  
  // соединиться с SMTP сервером
  // сокет в случае успеха, 0 иначе
  private function SMTPConnect() {
    global $_CONFIG;
	$sock = fsockopen($_CONFIG["smtp_server"], $_CONFIG["smtp_port"]);
	if($sock === false) return 0;
	
	if(intval(fgets($sock)) != 220) {
	  $this->SMTPQuit($sock);
	  return 0;
	}
	
	@fwrite($sock, "HELO localhost\r\n");
	
	if(intval(@fgets($sock)) != 250) {
	  $this->SMTPQuit($sock);
	  return 0;
	}
	
    return $sock;
  }
  
  // проходим аудентификацию, если нужно
  // 1 в случае успеха, 0 иначе
  private function SMTPAuth($sock) {
    global $_CONFIG;
	if(!$_CONFIG["smtp_login"]) return 1;
	
	@fwrite($sock, "AUTH LOGIN\r\n");
	if(intval(@fgets($sock)) != 334)
	  return 0;
	
	@fwrite($sock, base64_encode($_CONFIG["smtp_login"])."\r\n");
	if(intval(@fgets($sock)) != 334)
	  return 0;
	
    @fwrite($sock, base64_encode($_CONFIG["smtp_pass"])."\r\n");
	if(intval(@fgets($sock)) != 235)
	  return 0;
    return 1;
  }
  
  // шлем письмо по протоколу SMTP
  // 1 в случае успеха, 0 иначе
  private function SMTPSend($sock, $to, $from, $subj) {
  	$from = trim($from);
	
	if(ereg("^([^\<]+) \<([^\>]+)\>$", $from, $g))
	  $from = "=?UTF-8?B?".base64_encode($g[1])."?= <".$g[2].">";
	  
    @fwrite($sock, "MAIL FROM: $from\r\n");
	if(intval(@fgets($sock)) != 250)
	  return 0;
	  
	@fwrite($sock, "RCPT TO: $to\r\n");
	if(intval(@fgets($sock)) != 250)
	  return 0;
	  
	@fwrite($sock, "DATA\r\n");
	if(intval(@fgets($sock)) != 354)
	  return 0;
	  
	$subj = "=?UTF-8?B?".base64_encode($subj)."?=";
	
	$msg  = "MIME-Version: 1.0\r\n";
	$msg .= "To: $to\r\n";
	$msg .= "From: $from\r\n";
	$msg .= "Reply-To: $from\r\n";
	$msg .= "Subject: $subj\r\n";
	$msg .= "Content-type: text/html; charset=UTF-8\r\n";
	$msg .= "Content-Transfer-Encoding: base64\r\n";
	$msg .= "\r\n";
	$msg .= chunk_split(base64_encode($this->body), 68, "\n");
	$msg .= "\r\n.\r\n";
	
	@fwrite($sock, $msg);
	return (intval(@fgets($sock)) == 250);
  }
  
  // послать письмо
  // 1 в случае успеха, 0 иначе
  function Send($to, $from, $subj) {
    // соединяемся с сервером
    if(!($sock = $this->SMTPConnect()))
	  return 0;
	
	// проходим аудентификацию, если требуется
    if(!$this->SMTPAuth($sock)) {
	  $this->SMTPQuit($sock);
	  return 0;
    }

	// шлем письмо
    if(!$this->SMTPSend($sock, $to, $from, $subj)) {
	  $this->SMTPQuit($sock);
	  return 0;
    }	
	
	// выходим
	return $this->SMTPQuit($sock);
  }
}

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





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ