Я использую flash CS6 и flash player 11.4
Вот пример отправки электронной почты из Flash с помощью PHP
as3 код:
var php_file = "simple_email.php";
var message_text = "Hello Im mesage from flash.";
function sendEmail():void
{
var myData:URLVariables = new URLVariables();
myData.msg = message_text;
var myRequest:URLRequest = new URLRequest(php_file);
myRequest.data = myData;
myRequest.method = URLRequestMethod.POST;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
loader.addEventListener(Event.COMPLETE, completeHandler);
try {
loader.load(myRequest);
} catch (error:Error) {
trace("Unable to load URL");
}
function completeHandler(e:Event):void {
trace("Data Content:"+e.target.data)
trace("Response:"+e.target.data.success);
};
};
sendEmail();
PHP-код:
<?php
$msg = $_POST["msg"];
$to = "[email protected]";
$subject="Message from php";
$success = mail($to,$subject,$msg,"Content-Type: text/plain; charset=utf-8");
echo "temp=1&success=".$success;
?>
все выглядит просто, но не работает
1) Ответ: должен быть правдивым или ложным и есть: ". Успех;?> (Плохой парсинг?)
2) e.target.data выглядит странно:
Data Content:success=%22%20%24success%3B%0D%0A%3F%3E&%3C%3Fphp%0D%0A%09%24msg%20=%20var%5Fexport%28%24%5FPOST%2C%20true%29%3B%0D%0A%09%24to%20%3D%20%22baca%2Erene%40gmail%2Ecom%22%3B%0D%0A%09%24subject%3D%22Message%20from%20php%22%3B%0D%0A%09%24success%20%3D%20mail%28%24to%2C%24subject%2C%24msg%2C%22Content%2DType%3A%20text%2Fplain%3B%20charset%3Dutf%2D8%22%29%3B%0D%0A%09echo%20%22temp%3D1
3) После выполнения кода я не получил никаких писем.... что-то должно быть не так?
В порядке:
В PHP Booleans не вызывают "true" или "false", как в actionscript-3s trace(). Вам нужно использовать некоторую форму инструкции if в PHP для эхо-корреляции соответствующей строки, которая будет скорее отражать переменную напрямую.
e.target.data
возвращает строку utf с экранированной строковой версией вашего PHP-кода, обычно это знак того, что php не выполняется, и файл просто считывается как строка, вы должны проверить, что ваш сервер настроен правильно, и проверьте Журнал ошибок PHP (и измените конфигурацию php для записи всех ошибок в журнал)
Да, что-то не так, проверьте свои конфигурации PHP и журналы ошибок, вполне вероятно, и ошибку конфигурации SMTP.
Вы также можете использовать error_get_last();
в php, чтобы вытащить последнюю ошибку, вызванную php.