Перейти к содержанию
Авторизация  
#Pawno

Отправка сообщений на электронную почту

Рекомендуемые сообщения

#Pawno

Доброго времени суток. В этом уроке я расскажу как отправлять сообщение прямо с сервера.

 

Установка функций:

 

В начало мода/скрипта после инклудов

#include <a_http> // если есть не добовлять
#define MAILER_URL				 "путь к .php файлу"
#define MAILER_MAX_MAIL_SIZE	 (1024)

в любое место мода / скрипта.

forward OnMailScriptResponse(iIndex, iResponseCode, const szData[ ]);
public OnMailScriptResponse(iIndex, iResponseCode, const szData[ ])
{
if(szData[ 0 ]) printf( "Mailer script says: %s", szData );
}
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" );
}
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;
}
}
дальше ,Открываем текстовый документ и записываем в него

<?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(
"rn",
array
(
'From: "' . addslashes( $_POST[ 'f' ] ) . "" <{$_POST[ 'n' ]}>",
"Reply-To: {$_POST['f']}",
"X-Mailer: PHP/" . phpversion( ),
)
)
);
?>
Затем сохраняем файл в формате .php под название mail. После чего нам нужно загрузить его на хостинг. рекомендую hostinger.ru для бесплатного хранения файлов.

 

Не забудьте в #define MAILER_URL заменить адрес загруженного файла 'mail.php' (http//: и www. писать не нужно)

Например: #define MAILER_URL "адрес-сайта.ru/mail.php"

 

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

SendMail("mail получателя", "mail отправителя", "ник отправителя", "темя письма", "само сообщение");
Там где "mail отправителя"" можно написать любой mail или же просто поставить знак @

Изменено пользователем Amfy
Исправил мелкий текст.
  • Like 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Rustyk

Только на мускл да?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Jack.Black

Работает ? Что то не вериться!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

для всех модов , мускул не обязателен.

Работает ? Что то не вериться!

 

да работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Главное ровные руки и все будет норм.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Jack.Black

Главное ровные руки и все будет норм.

 

Просто это система устарела как я помню есть совсем новая и быстрая!)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

та нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Amfy

Не скрипт же) переместил в "Обучающие материалы".

P.S Komendant, авка на 5+ http://gsgames.ru/forum/public/style_emoticons/default/rolleyes.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

Не скрипт же) переместил в "Обучающие материалы".

P.S Komendant, авка на 5+ http://gsgames.ru/forum/public/style_emoticons/default/rolleyes.gif

 

спс)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
TrollFace

Некоторые бесплатные хостинги не поддерживают mail php - факт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

up

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Amfy

Перемещено в "Туториал"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
#Pawno

спс)

  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

Уроком не является. Объяснений нет никаких.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus
А зачем паблики и стоки ведь это всё в инклуде присутствует!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Trateus

И

#define MAILER_URL							   "путь к .php файлу"

Должно стоят перед инклудом!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
SHOROOP

И

#define MAILER_URL							 "путь к .php файлу"

Должно стоят перед инклудом!

 

Директива препроцессора не обязательно должна быть перед подключением библиотек. Я задефайнить хоть в теле какой-то функции могу.

 

К слову, материал стащен со стороннего ресурса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
TrollFace

И

#define MAILER_URL							 "путь к .php файлу"

Должно стоят перед инклудом!

 

 

http://gsgames.ru/forum/public/style_emoticons/default/sad.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
reAL

На сколько я знаю, этот не поддерживает html в сообщениях.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
FanHamMеr

та нет.

 

@ТаДа, уже давно есть отсылка через plugin, Tracker1 давно уже сделал.

На сишке написан.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.