Web

Раздел о Веб разработке и продвижении

Четверг, 29 декабря 2022 07:05

Открыть firewall для подсетей VK (вконтакте)

Автор

Официальный ответ техподдержки:

роботы VK ходят с таким заголовком: Mozilla/5.0 (compatible; VKRobot/1.0)
ip адреса всегда могут измениться, на них лучше не ориентироваться, примерный список можно получить тут:
https://bgp.he.net/search?search%5Bsearch%5D=vkontakte&commit=Search

 

Понедельник, 20 августа 2018 20:41

PHP скрипт отправки почты через SMTP SSL mail.ru

Автор

Выкладываю для общего пользования пример PHP-скрипта для отправки почты через SMTP ssl mail.ru

 

<?php
function get_data($smtp_conn)
{
  $data="";
  while($str = fgets($smtp_conn,515)) 
  {
    $data .= $str;
    if(substr($str,3,1) == " ") { break; }
  }
  return $data;
}
 
$header="Date: ".date("D, j M Y G:i:s")." +0700\r\n"; 
$header.="From: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode('ВашеИмя')))."?= <ВашаПочта@mail.ru>\r\n"; 
$header.="X-Mailer: The Bat! (v3.99.3) Professional\r\n"; 
$header.="Reply-To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode('ВашеИмя')))."?= <ВашаПочта@mail.ru>\r\n";
$header.="X-Priority: 3 (Normal)\r\n";
$header.="Message-ID: <172562218.".date("YmjHis")."@mail.ru>\r\n";
$header.="To: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode('ИмяПолучателя')))."?= <АдресПолучателя@gmail.com>\r\n";
$header.="Subject: =?windows-1251?Q?".str_replace("+","_",str_replace("%","=",urlencode('проверка')))."?=\r\n";
$header.="MIME-Version: 1.0\r\n";
$header.="Content-Type: text/plain; charset=windows-1251\r\n";
$header.="Content-Transfer-Encoding: 8bit\r\n";
 
 
$text="привет, проверка связи.";
 
$smtp_conn = fsockopen("ssl://smtp.mail.ru", 465,$errno, $errstr, 10);
$data = get_data($smtp_conn);
 
$code = substr($data,0,3);
print 'Connection:'.$data;
print '<br>';
 
fputs($smtp_conn,"EHLO mail.ru\r\n");
$data = get_data($smtp_conn);
 
$test='qwe';
 
$code = substr($data,0,3);
echo 'EHLO:'.$data;
print '<br>';
 
fputs($smtp_conn,"AUTH LOGIN\r\n");
$data = get_data($smtp_conn);
 
$code = substr($data,0,3);
echo 'AUTH:'.$data;
print '<br>';
 
fputs($smtp_conn,base64_encode("ВашаПочта@mail.ru")."\r\n");
$data = get_data($smtp_conn);
 
$code = substr($data,0,3);
echo $data;
print '<br>';
 
fputs($smtp_conn,base64_encode("ВашПароль")."\r\n");
$data = get_data($smtp_conn);
 
$code = substr($data,0,3);
echo 'pass:'.$data;
print '<br>';
 
fputs($smtp_conn,"MAIL FROM:ВашаПочта@mail.ru\r\n");
$data = get_data($smtp_conn);
 
$code = substr($data,0,3);
echo 'MAIL:'.$data;
print '<br>';
 
fputs($smtp_conn,"RCPT TO:АдресПолучателя@gmail.com\r\n");
$data = get_data($smtp_conn);
 
$code = substr($data,0,3);
echo 'RCPT:'.$data;
print '<br>';
 
fputs($smtp_conn,"DATA\r\n");
$data = get_data($smtp_conn);
 
$code = substr($data,0,3);
echo 'DATA:'.$data;
print '<br>';
 
fputs($smtp_conn,$header."\r\n".$text."\r\n.\r\n");
$data = get_data($smtp_conn);
 
$code = substr($data,0,3);
echo 'header:'.$data;
print '<br>';
 
fputs($smtp_conn,"QUIT\r\n");
$data = get_data($smtp_conn);
 
$code = substr($data,0,3);
echo 'QUIT:'.$data;
print '<br>';
 
?>
Понедельник, 20 августа 2018 19:53

ocStore 2.3.0.2.3 не отправляются письма smtp через mail.ru

Автор

Столкнулся с проблемой отправки писем из интернет-магазина на базе ocStore 2.3.0.2.3

Для начала проверьте настройки магазина в админке: Система-Настройки

Откройте редактирование магазина и на вкладке почта установите:

Почтовый протокол: SMTP
Параметры функции mail оставьте пустым
SMTP хост: ssl://smtp.mail.ru
SMTP логин: вашапочта@mail.ru
SMTP пароль: вашпароль
SMTP порт: 465
SMTP таймаут: 60

Затем посмотрите логи /log/error.log

У меня там была ошибка: PHP Fatal error:  Uncaught Exception: Error: RCPT TO not accepted from server! in /var/www/clients/client1/web1/web/system/library/mail.php:340

Не работала форма обратной связи и не приходили на почту заказы клиентов.

Я начал с исправления формы обратной связи.

Для этого нужно поправить файл /catalog/controller/information/contact.php

исправить строку
$mail->setReplyTo($this->request->post['email']);
на
$mail->setReplyTo($this->config->get('config_email'));

Если все исправили, то при отправке формы получите сообщение: Ваш запрос был успешно отправлен администрации магазина!

 Для того чтобы приходило оповещение о заказе, нужно исправить файл /system/storage/modification/catalog/model/checkout/order.php 

в 3х местах найти строки
$mail->setTo($order_info['email']);
или 
$mail->setTo($this->config->get('config_email'));

и заменить их на:
$mail->setTo($this->config->get('config_email'));
$mail->setReplyTo($this->config->get('config_email'));

Если все получилось, то в конце оформления заказа, будете получать сообщение:

Заказ успешно сформирован!

Ваш заказ был успешно сформирован!

При переносе рабочего приложения (запускалось из под Visual Studio) на боевой сервер, получал ошибку:

Ошибка HTTP 403.14 - Forbidden

Веб-сервер настроен таким образом, чтобы не формировать списка содержимого каталога.

Перечитал кучу статей, основным советом был - перерегистрировать NET framework 4 командой:

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -r

Вот еще хорошая статья на StackOverflow:

http://stackoverflow.com/questions/3762287/script-not-served-by-static-file-handler-on-iis7-5

Но в моем случае тоже не помогло.

Результат такой - Windows Server 2008 - был без Service Pack 1. После обновления, плюс всех остальных обновлений с сайта Microsoft - ASP.NET приложение прекрасно запустилось!

 

 

http://abnovki.ru/moda-style/botilonyi-dlya-jenschin-r . Покупайте элитные прокси серверы по самым низким ценам для любых потребностей