Carl

Рейтинг
80
Регистрация
18.07.2010

Там и проверять надобности нет. Это и есть реинкарнация мошенника TolstoGnoM, бегает со старой ICQ просит чтобы репу повысили и отзывы ищет о своей "якобы деятельности". Совсем всех за дураков считают.

Работал с ТС, все устроило, всем доволен.

Сделали качественный баннер. Адекватная реакция на доработки и пожелания.

ТС очень выручил, нужно было срочно сделать аудит и настроить закупку ссылок для одного сайта, не смотря на то, что была пятница и вечер, тс взял заказ без очереди за небольшую доплату, и уже сегодня я получил развернутый анализ сайта, с подробными рекомендациями по исправлению, с примерами и скриншотами, а так же доступы к аккаунтам в биржах, где настроены кампании по закупке ссылок. Все качественно и главное - прозрачно, спасибо за работу!

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

zagred, не чихать. Выкупаем проекты, много. Но не все проекты заинтересовывают на той или иной стадии переговоров.

Мне как бы тоже чихать на ихнее предложение без конкретики

Кот в мешке - даром возьмем. Все что выше, конкретику ждем со стороны-продавца, в первую очередь.


while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 250) {
trigger_error('Error: MAIL FROM not accepted from server!');
exit();
}

if (!is_array($this->to)) {
fputs($handle, 'RCPT TO: <' . $this->to . '>' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
trigger_error('Error: RCPT TO not accepted from server!');
exit();
}
} else {
foreach ($this->to as $recipient) {
fputs($handle, 'RCPT TO: <' . $recipient . '>' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if ((substr($reply, 0, 3) != 250) && (substr($reply, 0, 3) != 251)) {
trigger_error('Error: RCPT TO not accepted from server!');
exit();
}
}
}

fputs($handle, 'DATA' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 354) {
trigger_error('Error: DATA not accepted from server!');
exit();
}

// According to rfc 821 we should not send more than 1000 including the CRLF
$message = str_replace("\r\n", "\n", $header . $message);
$message = str_replace("\r", "\n", $message);

$lines = explode("\n", $message);

foreach ($lines as $line) {
$results = str_split($line, 998);

foreach ($results as $result) {
if (substr(PHP_OS, 0, 3) != 'WIN') {
fputs($handle, $result . $this->crlf);
} else {
fputs($handle, str_replace("\n", "\r\n", $result) . $this->crlf);
}
}
}

fputs($handle, '.' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 250) {
trigger_error('Error: DATA not accepted from server!');
exit();
}

fputs($handle, 'QUIT' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 221) {
trigger_error('Error: QUIT not accepted from server!');
exit();
}

fclose($handle);
}
}
}
}

Пардон, тупанул, файл другой:

system/library/mail.php, а testmail из корня создавал проверяльщик вирусов...

<?php

class Mail {
protected $to;
protected $from;
protected $sender;
protected $subject;
protected $text;
protected $html;
protected $attachments = array();
public $protocol = 'mail';
public $hostname;
public $username;
public $password;
public $port = 25;
public $timeout = 5;
public $newline = "\n";
public $crlf = "\r\n";
public $verp = false;
public $parameter = '';

public function setTo($to) {
$this->to = $to;
}

public function setFrom($from) {
$this->from = $from;
}

public function setSender($sender) {
$this->sender = $sender;
}

public function setSubject($subject) {
$this->subject = $subject;
}

public function setText($text) {
$this->text = $text;
}

public function setHtml($html) {
$this->html = $html;
}

public function addAttachment($filename) {
$this->attachments[] = $filename;
}

public function send() {
if (!$this->to) {
trigger_error('Error: E-Mail to required!');
exit();
}

if (!$this->from) {
trigger_error('Error: E-Mail from required!');
exit();
}

if (!$this->sender) {
trigger_error('Error: E-Mail sender required!');
exit();
}

if (!$this->subject) {
trigger_error('Error: E-Mail subject required!');
exit();
}

if ((!$this->text) && (!$this->html)) {
trigger_error('Error: E-Mail message required!');
exit();
}

if (is_array($this->to)) {
$to = implode(',', $this->to);
} else {
$to = $this->to;
}

$boundary = '----=_NextPart_' . md5(time());

$header = '';

$header .= 'MIME-Version: 1.0' . $this->newline;

if ($this->protocol != 'mail') {
$header .= 'To: ' . $to . $this->newline;
$header .= 'Subject: ' . $this->subject . $this->newline;
}

$header .= 'Date: ' . date('D, d M Y H:i:s O') . $this->newline;
$header .= 'From: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;
$header .= 'Reply-To: ' . '=?UTF-8?B?' . base64_encode($this->sender) . '?=' . '<' . $this->from . '>' . $this->newline;
$header .= 'Return-Path: ' . $this->from . $this->newline;
$header .= 'X-Mailer: PHP/' . phpversion() . $this->newline;
$header .= 'Content-Type: multipart/related; boundary="' . $boundary . '"' . $this->newline . $this->newline;

if (!$this->html) {
$message = '--' . $boundary . $this->newline;
$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
$message .= $this->text . $this->newline;
} else {
$message = '--' . $boundary . $this->newline;
$message .= 'Content-Type: multipart/alternative; boundary="' . $boundary . '_alt"' . $this->newline . $this->newline;
$message .= '--' . $boundary . '_alt' . $this->newline;
$message .= 'Content-Type: text/plain; charset="utf-8"' . $this->newline;
$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;

if ($this->text) {
$message .= $this->text . $this->newline;
} else {
$message .= 'This is a HTML email and your email client software does not support HTML email!' . $this->newline;
}

$message .= '--' . $boundary . '_alt' . $this->newline;
$message .= 'Content-Type: text/html; charset="utf-8"' . $this->newline;
$message .= 'Content-Transfer-Encoding: 8bit' . $this->newline . $this->newline;
$message .= $this->html . $this->newline;
$message .= '--' . $boundary . '_alt--' . $this->newline;
}

foreach ($this->attachments as $attachment) {
if (file_exists($attachment)) {
$handle = fopen($attachment, 'r');

$content = fread($handle, filesize($attachment));

fclose($handle);

$message .= '--' . $boundary . $this->newline;
$message .= 'Content-Type: application/octet-stream; name="' . basename($attachment) . '"' . $this->newline;
$message .= 'Content-Transfer-Encoding: base64' . $this->newline;
$message .= 'Content-Disposition: attachment; filename="' . basename($attachment) . '"' . $this->newline;
$message .= 'Content-ID: <' . basename(urlencode($attachment)) . '>' . $this->newline;
$message .= 'X-Attachment-Id: ' . basename(urlencode($attachment)) . $this->newline . $this->newline;
$message .= chunk_split(base64_encode($content));
}
}

$message .= '--' . $boundary . '--' . $this->newline;

if ($this->protocol == 'mail') {
ini_set('sendmail_from', $this->from);

if ($this->parameter) {
sprintf($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header, $this->parameter);
} else {
sprintf($to, '=?UTF-8?B?' . base64_encode($this->subject) . '?=', $message, $header);
}
} elseif ($this->protocol == 'smtp') {
$handle = fsockopen($this->hostname, $this->port, $errno, $errstr, $this->timeout);

if (!$handle) {
trigger_error('Error: ' . $errstr . ' (' . $errno . ')');
exit();
} else {
if (substr(PHP_OS, 0, 3) != 'WIN') {
socket_set_timeout($handle, $this->timeout, 0);
}

while ($line = fgets($handle, 515)) {
if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($this->hostname, 0, 3) == 'tls') {
fputs($handle, 'STARTTLS' . $this->crlf);

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 220) {
trigger_error('Error: STARTTLS not accepted from server!');
exit();
}
}

if (!empty($this->username) && !empty($this->password)) {
fputs($handle, 'EHLO ' . getenv('SERVER_NAME') . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 250) {
trigger_error('Error: EHLO not accepted from server!');
exit();
}

fputs($handle, 'AUTH LOGIN' . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 334) {
trigger_error('Error: AUTH LOGIN not accepted from server!');
exit();
}

fputs($handle, base64_encode($this->username) . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 334) {
trigger_error('Error: Username not accepted from server!');
exit();
}

fputs($handle, base64_encode($this->password) . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 235) {
trigger_error('Error['.substr($reply, 0, 3).']: Password not accepted from server!');
exit();
}
} else {
fputs($handle, 'HELO ' . getenv('SERVER_NAME') . $this->crlf);

$reply = '';

while ($line = fgets($handle, 515)) {
$reply .= $line;

if (substr($line, 3, 1) == ' ') {
break;
}
}

if (substr($reply, 0, 3) != 250) {
trigger_error('Error: HELO not accepted from server!');
exit();
}
}

if ($this->verp) {
fputs($handle, 'MAIL FROM: <' . $this->from . '>XVERP' . $this->crlf);
} else {
fputs($handle, 'MAIL FROM: <' . $this->from . '>' . $this->crlf);
}

$reply = '';

?>

Все предложения, лучше в ЛС, а самое идеальное - на емаил golenmokx@gmail.com

за дорого

Цену озвучили бы сразу. Я уже научился не тратить время на "за дорого", как правило цены там от потолка и бурной фантазии, а не рынка и дохода.

Всего: 359