Guest User

mailer.php - Evaldas

a guest
Oct 4th, 2014
430
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.43 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_http>
  3.  
  4. #define MAILER_URL              "JUSU URL (BE HTTP IR WWW) pvz supergames.lt/mailer.php"
  5. #define MAILER_MAX_MAIL_SIZE    (1024)
  6.  
  7. stock SendMail(const szReceiver[ ], const szSenderMail[ ], const szSenderName[ ], const szSubject[ ], const szMessage[ ])
  8. {
  9.     new szBuffer[ MAILER_MAX_MAIL_SIZE ] = "t=",
  10.     iPos = strlen( szBuffer ),
  11.     iLength = strlen( szReceiver );
  12.    
  13.     memcpy( szBuffer, szReceiver, iPos * 4, ( iLength + 1 ) * 4 );
  14.    
  15.     StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
  16.    
  17.     strcat( szBuffer, "&f=" );
  18.    
  19.     iPos    = strlen( szBuffer );
  20.     iLength = strlen( szSenderName );
  21.    
  22.     memcpy( szBuffer, szSenderName, iPos * 4, ( iLength + 1 ) * 4 );
  23.    
  24.     StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
  25.    
  26.     strcat( szBuffer, "&n=" );
  27.    
  28.     iPos    = strlen( szBuffer );
  29.     iLength = strlen( szSenderMail );
  30.    
  31.     memcpy( szBuffer, szSenderMail, iPos * 4, ( iLength + 1 ) * 4 );
  32.    
  33.     StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
  34.    
  35.     strcat( szBuffer, "&s=" );
  36.    
  37.     iPos    = strlen( szBuffer );
  38.     iLength = strlen( szSubject );
  39.    
  40.     memcpy( szBuffer, szSubject, iPos * 4, ( iLength + 1 ) * 4 );
  41.    
  42.     StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
  43.    
  44.     strcat( szBuffer, "&m=" );
  45.    
  46.     iPos    = strlen( szBuffer );
  47.     iLength = strlen( szMessage );
  48.    
  49.     memcpy( szBuffer, szMessage, iPos * 4, ( iLength + 1 ) * 4 );
  50.    
  51.     StringURLEncode( szBuffer[ iPos ], 1024 - iPos );
  52.    
  53.     HTTP( 0xD00D, HTTP_POST, MAILER_URL, szBuffer, "OnMailScriptResponse" );
  54. }
  55.  
  56. forward OnMailScriptResponse(iIndex, iResponseCode, const szData[ ]);
  57. public OnMailScriptResponse(iIndex, iResponseCode, const szData[ ])
  58. {
  59.     if(szData[ 0 ])
  60.     {
  61.         printf( "Mailer script says: %s", szData );
  62.     }  
  63. }
  64.  
  65. stock StringURLEncode(szString[ ], iSize = sizeof( szString ))
  66. {
  67.     for ( new i = 0, l = strlen( szString ); i < l; i++ )
  68.     {
  69.         switch ( szString[ i ] )
  70.         {
  71.             case '!', '(', ')', '\'', '*',
  72.                  '0' .. '9',
  73.                  'A' .. 'Z',
  74.                  'a' .. 'z':
  75.             {
  76.                 continue;
  77.             }
  78.            
  79.             case ' ':
  80.             {
  81.                 szString[ i ] = '+';
  82.                
  83.                 continue;
  84.             }
  85.         }
  86.        
  87.         new
  88.             s_szHex[ 8 ]
  89.         ;
  90.        
  91.         if ( i + 3 >= iSize )
  92.         {
  93.             szString[ i ] = EOS;
  94.            
  95.             break;
  96.         }
  97.        
  98.         if ( l + 3 >= iSize )
  99.             szString[ iSize - 3 ] = EOS;
  100.        
  101.         format( s_szHex, sizeof( s_szHex ), "%02h", szString[ i ] );
  102.        
  103.         szString[ i ] = '%';
  104.        
  105.         strins( szString, s_szHex, i + 1, iSize );
  106.        
  107.         l += 2;
  108.         i += 2;
  109.        
  110.         if ( l > iSize - 1 )
  111.             l = iSize - 1;
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment