[Include] Mailer - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Include] Mailer
Herro[CM] Дата: Четверг, 10.09.2015, 14:48 | Сообщение # 1
Бывалый
Сообщений: 425
Статус: Offline
Данный include позволяет отправлять сообщения на почту.

Использование:

Код
SendMail( to[], sender_email[], sender_name[], subject[], message[] );  


Сам include

Код

#include <a_samp>
#include <a_http>

#if ( !defined MAILER_MAX_MAIL_SIZE )
   #define MAILER_MAX_MAIL_SIZE  (1024)
#endif

#if ( !defined MAILER_URL )
   #error Please define MAILER_URL before including the mailer include.
#endif

stock SendMail( const szReceiver[ ], const szSenderMail[ ], const szSenderName[ ], const szSubject[ ], const szMessage[ ] )
{
   new
    szBuffer[ MAILER_MAX_MAIL_SIZE ] = "t=",
    iPos    = strlen( szBuffer ),
    iLength = strlen( szReceiver )
   ;
     
   memcpy( szBuffer, szReceiver, iPos * 4, ( iLength + 1 ) * 4 );
     
   StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
     
   strcat( szBuffer, "&f=" );
     
   iPos    = strlen( szBuffer );
   iLength = strlen( szSenderName );
     
   memcpy( szBuffer, szSenderName, iPos * 4, ( iLength + 1 ) * 4 );
     
   StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
     
   strcat( szBuffer, "&n=" );
     
   iPos    = strlen( szBuffer );
   iLength = strlen( szSenderMail );
     
   memcpy( szBuffer, szSenderMail, iPos * 4, ( iLength + 1 ) * 4 );
     
   StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
     
   strcat( szBuffer, "&s=" );
     
   iPos    = strlen( szBuffer );
   iLength = strlen( szSubject );
     
   memcpy( szBuffer, szSubject, iPos * 4, ( iLength + 1 ) * 4 );
     
   StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
     
   strcat( szBuffer, "&m=" );
     
   iPos    = strlen( szBuffer );
   iLength = strlen( szMessage );
     
   memcpy( szBuffer, szMessage, iPos * 4, ( iLength + 1 ) * 4 );
     
   StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
     
   HTTP( 0xD00D, HTTP_POST, MAILER_URL, szBuffer, "OnMailScriptResponse" );
}

forward OnMailScriptResponse( iIndex, iResponseCode, const szData[ ] );
public  OnMailScriptResponse( iIndex, iResponseCode, const szData[ ] )
{
   if ( szData[ 0 ] )
    printf( "Mailer script says: %s", szData );
}

stock StringURLEncode( szString[ ], iSize = sizeof( szString ) )
{
   for ( new i = 0, l = strlen( szString ); i < l; i++ )
   {
    switch ( szString[ i ] )
    {
     case '!', '(', ')', '\'', '*',
          '0' .. '9',
          'A' .. 'Z',
          'a' .. 'z':
     {
      continue;
     }
       
     case ' ':
     {
      szString[ i ] = '+';
        
      continue;
     }
    }
      
    new
     s_szHex[ 8 ]
    ;
      
    if ( i + 3 >= iSize )
    {
     szString[ i ] = EOS;
       
     break;
    }
      
    if ( l + 3 >= iSize )
     szString[ iSize - 3 ] = EOS;
      
    format( s_szHex, sizeof( s_szHex ), "%02h", szString[ i ] );
      
    szString[ i ] = '%';
      
    strins( szString, s_szHex, i + 1, iSize );
      
    l += 2;
    i += 2;
      
    if ( l > iSize - 1 )
     l = iSize - 1;
   }
}


Mailer.php (должен находиться на вашем сайте, для отправки сообщения)
Код
<?php
   ini_set( 'html_errors', false );
     
   if ( empty( $_POST[ 't' ] ) || empty( $_POST[ 'f' ] ) || empty( $_POST[ 'n' ] ) || empty( $_POST[ 's' ] ) || empty( $_POST[ 'm' ] ) )
    die( 'Error: Missing parameters.' );
     
   mail(
    $_POST[ 't' ],
    utf8_encode( $_POST[ 's' ] ),
    $_POST[ 'm' ],
    implode(
     "\r\n",
     array
     (
      'From: "' . addslashes( $_POST[ 'f' ] ) . "\" <{$_POST[ 'n' ]}>",
      "Reply-To: {$_POST['f']}",
      "X-Mailer: PHP/" . phpversion( ),
     )
    )
   );
?>


Пример функции:

Код
#define MAILER_URL "" // Файл mailer.php на вашем сайте    

#include <mailer>   

public OnFilterScriptInit( )   
{   
    SendMail( "e-mail", "E-mail отправителя", "Название", "Тема сообщения", "Текст сообщения" );   
}


Когда нет знания, есть мнение.

Сообщение отредактировал Herro[CM] - Четверг, 10.09.2015, 14:49
[CM]Kingster Дата: Четверг, 10.09.2015, 15:56 | Сообщение # 2
Боец
Сообщений: 245
Статус: Offline
Можно использовать для подтверждения почты, к примеру как на ARP / DRP. Но вроде на mail.ru почту не приходит ?

Пользователь Cheat - Master уже 400 дней.

Я в Контакте - vk.com/buddy_fly
Плисс Дата: Вторник, 19.07.2016, 21:07 | Сообщение # 3
Боец
Сообщений: 70
Статус: Offline
Кросс,полезная темка!
  • Страница 1 из 1
  • 1
Поиск: