Почта не отправляется - SendMail не работает!

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 531 раз
Контактная информация:

Re: Почта не отправляется - SendMail не работает!

Сообщение Vovix » Вт фев 18, 2014 8:57 pm

Urbas81 писал(а):
sergejey писал(а):Функция SendMail использует стандартный mail, так что тоже должна работать. И она поддерживает аттачи:
SendMail("from@email.com","to@email.com","subject","body",array('path/to/attach1.ext','path/to/attach2.ext'));
Что-то у меня не получилось, воэможно надо что-то править, а вот пример от Ivan работает, туда б прикрепить.
Подтверждаю! SendMail() работать перестает, видимо в связи с внесением изменений в файле php.ini
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 531 раз
Контактная информация:

Re: Почта не отправляется - SendMail не работает!

Сообщение Vovix » Ср мар 18, 2015 9:28 pm

sergejey писал(а):М... в самом деле проблема, как оказалось. Я, честно говоря, когда реализовывал как раз остановился на minirelay из-за того, что после его запуска больше ничего не нужно делать, но вот всплыло, что многие почтовые системы воспринимают от него письма как спам и не доставляют. Короче, раз такое дело, то буду чинить и добавлю возможность отправки писем теми же командами, только с использованием какого-то внешнего почтового ящика.
Сергей, а как дела с починкой?

или я отстал от жизни... :D
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Почта не отправляется - SendMail не работает!

Сообщение sergejey » Чт мар 19, 2015 11:27 am

Как-то потерялась задача. Вернул в список того, что надо починить :)

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
Zaezd2008
Сообщения: 165
Зарегистрирован: Чт ноя 13, 2014 8:56 pm
Благодарил (а): 23 раза
Поблагодарили: 7 раз

Re: Почта не отправляется - SendMail не работает!

Сообщение Zaezd2008 » Сб сен 26, 2015 6:52 pm

Воспользовался ссылкой http://blog.nagaychenko.com/2010/02/23/ ... ос-windows поставил sendmail работает, отсылает, но только текст на русском приходит "козябрами".
Теперь вот интересно, а как данную библиотеку "прикрутить" к МД?
LutsenkoDenis писал(а):Я использую эту библиотеку на протяжении нескольких лет.
http://phpmailer.worxware.com/
Примеры:
SendMail - http://phpmailer.worxware.com/index.php ... ebsendmail
SMTP - http://phpmailer.worxware.com/index.php?pg=exampleasmtp
Zaezd2008
Сообщения: 165
Зарегистрирован: Чт ноя 13, 2014 8:56 pm
Благодарил (а): 23 раза
Поблагодарили: 7 раз

Re: Почта не отправляется - SendMail не работает!

Сообщение Zaezd2008 » Чт окт 01, 2015 8:38 pm

Разобрался с кодировкой в sendmail для windows. Если кому интересно, то ниже:

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

   $to = 'кому';
   $from = 'от кого'; 
   $subject = 'тема'; 
   $subject = '=?utf-8?b?'. base64_encode($subject) .'?='; 
   $headers = "Content-type: text/plain; charset=\"utf-8\"\r\n"; 
   $headers .= "From: ". $from ." <". $from ."> \r\n"; 
   $message = "Текст сообщения"; 
   mail($to, $subject, $message, $headers);
   
 
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Почта не отправляется - SendMail не работает!

Сообщение xor » Сб окт 03, 2015 10:43 pm

Решил для себя проблему отправки почты через ЯндексМэйл в Вин ХР -там есть возможность использовать объект CDO - написанием скрипта VBS (пока без возможности прикрепления файлов - мне не нужно, но добавить легко)
sendmail.vbsПоказать

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

'sendmail.vbs /from:user@yandex.ru /to:кому@addr.def /subj:"subj" /body:"body" /fbody:c:\1\1.txt
'c:\_majordomo\apps\sendmail\sendmail.vbs
Set FSO = CreateObject("Scripting.FileSystemObject")
Set colArgs = WScript.Arguments.Named

If colArgs.Exists("from") Then  
   myFrom = colArgs.Item("from") 
Else  
   myFrom = "user_default@yandex.ru" 'замени на свой дефолтный
End If
If colArgs.Exists("to") Then  
   myTo = colArgs.Item("to") 
Else  
   myTo = "кому_default@addr.def" 'замени на свой дефолтный
End If
If colArgs.Exists("subj") Then  
   mySubj = colArgs.Item("subj") 
Else  
   mySubj = "Сообщение от Алисы" '_default subj
End If

If colArgs.Exists("body") Then  
   myBody = colArgs.Item("body") 
Else  
   myBody = "Сообщение от Алисы" '_default body
End If

If colArgs.Exists("fbody") Then  
   if FSO.FileExists (colArgs.Item("fbody")) Then
       myBody = FSO.OpenTextFile(colArgs.Item("fbody")).ReadAll
   End If
End If



Const cdoSendUsingPickup = 1 'Send message using the local SMTP service pickup directory. 
Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network). 
 
 Const cdoAnonymous = 0 'Do not authenticate
 Const cdoBasic = 1 'basic (clear-text) authentication
 Const cdoNTLM = 2 'NTLM
 
 Set objMessage = CreateObject("CDO.Message") 
 objMessage.Subject = mySubj
 objMessage.From = myFrom
 objMessage.To = myTo
 objMessage.TextBody = myBody

 If IsArray( myAttachment ) Then
            For i = 0 To UBound( myAttachment )
                'Set File = FSO.GetFile(myAttachment( i ))
        If FSO.FileExists(myAttachment( i )) Then
            objMessage.AddAttachment Replace( myAttachment( i ), "\", "\\" ),"",""
        end If
            Next
 ElseIf myAttachment <> "" Then
                'Set File = FSO.GetFile(myAttachment)
        If FSO.FileExists(myAttachment) Then
            objMessage.AddAttachment Replace( myAttachment, "\", "\\" ),"",""
        end If
 End If

 '==This section provides the configuration information for the remote SMTP server.
 With objMessage.Configuration.Fields
     .Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
  'Name or IP of Remote SMTP Server
    .Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.yandex.ru"
  'Type of authentication, NONE, Basic (Base64 encoded), NTLM
     .Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
 'Your UserID on the SMTP server
     .Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = "user" 'замени на свой логин на яндексе
 'Your password on the SMTP server
    .Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "password" 'замени на свой на яндексе
 'Server port (typically 25)
    .Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 
 'Use SSL for the connection (False or True)
    .Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
 'Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP   server)
    .Item ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 90
    .Update
 '==End remote SMTP server configuration section==  
 End With
 objMessage.Send
Set objMessage = Nothing
+ своя функция
mySendMailПоказать

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

function mySendMail($from, $to, $subj, $body, $attach="")
{ 
  $mymail="";
  if (!empty($from)) {
    $mymail = $mymail.' /from:'.$from;
  }
  if (!empty($to)) {
    $mymail = $mymail.' /to:'.$to;
  }
  if (!empty($subj)) {
    $mymail = $mymail.' /subj:"'.$subj.'"';
  }
  if (!empty($body)) {
    $mymail = $mymail.' /body:"'.$body.'"';
  }

  safe_exec ('cscript.exe //b //t:120 c:\_majordomo\apps\sendmail\sendmail.vbs '.$mymail);

  return 'Send';
}
 
За это сообщение автора xor поблагодарил:
ErmolenkoM (Вс окт 04, 2015 11:16 am)
Рейтинг: 1.16%
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

SendMail linux - кракозябры

Сообщение Amarok » Сб ноя 21, 2015 11:45 am

Привинтил SendMail linux по этой инструкции. Работает, но письма приходят такие:
Screenshot_1.png
Screenshot_1.png (14.13 КБ) 10358 просмотров
А должно было прийти: Валера просит перезвонить ему на номер.
Где я опять допилить забыл?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
kawkay
Сообщения: 53
Зарегистрирован: Вс апр 19, 2015 6:10 pm
Благодарил (а): 83 раза
Поблагодарили: 13 раз

Re: Почта не отправляется - SendMail не работает!

Сообщение kawkay » Сб ноя 21, 2015 2:33 pm

Попробуй вот так.Пример сработки датчика дыма с отправкой на мыло
СпойлерПоказать
$Pogarkamail=(float)gg("5599317-24bit-P1.status");
if ($Pogarkamail>0)
{
$bodytext.='Отправляю майл датчик дым';
say($bodytext,1);
$from=gg('ThisComputer.EMail');
$to=gg("admin.email ");
$subject="=Pogarkamail =";
$msg = $bodytext;
$subject = iconv("UTF-8", "WINDOWS-1251", $subject);
$message = iconv("UTF-8", "WINDOWS-1251", $msg);
SendMail($from, $to, $subject, $message);
}
За это сообщение автора kawkay поблагодарил:
Amarok (Вт сен 27, 2016 2:23 pm)
Рейтинг: 1.16%
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Почта не отправляется - SendMail не работает!

Сообщение Amarok » Сб ноя 21, 2015 2:44 pm

хм... сработало. но, хотелось бы, ещё проще
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Re: Почта не отправляется - SendMail не работает!

Сообщение Amarok » Сб дек 12, 2015 1:06 pm

Leks писал(а):Найти библиотеку для php, которая вместо функции mail Использует соединение через сокеты и шлет почту также через ваш ящик
и подправить SendMail, чтобы она использовала ее
А как подправить функцию SendMail для использования PHPMailer?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
Ответить