here is a simple php mail() function test script i wrote
(note that escapeshellcmd() is disabled on 000webhost, and this is a potential security risk, but after talking customer support via ticket, seems they dont care 
also note this script can not test mb_send_mail() yet, and at 000webhost, mb_send_mail() is also disabled.)
live demo:
http://www.hanshenrik.tk/mailtest.php
PHP Code:
<?php
error_reporting(E_ALL);
//change true/false to edit configs...
$allow_additional_parameters=true;//allow additional parameters?
$escape_additional_parameters=is_usable('escapeshellcmd') && false;//Escape additional parameters? (its a security thing)
$allow_iniset=is_usable('ini_set') && true;//allow ini_set('sendmail_from') change?
///end of config..
//mailtest v2: added some security configurations and moved result info into <body> (results used to be before <html>)
function is_usable($function) {
$disabled_functions_one=explode(',',ini_get('disable_functions'));
$disabled_functions_two=explode(', ',ini_get('disable_functions')); //this is for some change between Php4 and 5 with foreach and trim...
if(in_array($function, $disabled_functions_one) || in_array($function, $disabled_functions_two) || !is_callable($function))
return false;
else
return true;
}
if(isset($_GET['Sto']))
{//below im using @ instead of tons of isset's... feel free to rewrite it
@$to=$_GET['Sto'];
@$subject=$_GET['Ssubject'];
@$message=$_GET['Smessage'];
@$additional_headers=$_GET['Sadditional_headers'];
@$additional_parameters=($allow_additional_parameters== true ? ($escape_additional_parameters == true ? escapeshellcmd($_GET['Sadditional_parameters']) : $_GET['Sadditional_parameters']) : '');
$result_string='';
if($allow_iniset && isset($_GET['Ssendmail_from']) && !empty($_GET['Ssendmail_from']))
{
ini_set('sendmail_from',$_GET['Ssendmail_from']);
$result_string.= 'sendmail_from set to: '.ini_get('sendmail_from').'<br/>(Warning: ini_set(\'sendmail_from\') doesnt work on 000webhost for some (unknown to me) reason.)<br/>';
}
$result_string.= 'return of mail() function:';
$result_string.=var_export(
mail($to,$subject,$message,$additional_headers,$additional_parameters),
true);
$result_string.='<br/><br/>';
}
?>
<html><head></head>
<body>
<?php if(isset($result_string)) echo $result_string;?>
a mailtest script.<br/>
php.net documentation: <br/>bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )
<br/><br/>
<form name="input" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="get">
$to: <input type="text" name="Sto" /><br/>
$subject: <input type="text" name="Ssubject" /><br/>
$message: <input type="text" name="Smessage" /><br/>
$additional_headers: <input type="text" name="Sadditional_headers" /> (optional)<br/>
$additional_parameters: <input <?php if(!$allow_additional_parameters) echo 'disabled="true" value="disabled by admin"';?> type="text" name="Sadditional_parameters" /> (optional<?php if($escape_additional_parameters == true) echo ', warning: will be escaped with <a href="http://no.php.net/manual/en/function.escapeshellcmd.php">escapeshellcmd()</a>'; ?>)<br/>
ini_set('sendmail_from','input'):<input <?php if(!$allow_iniset) echo 'disabled="true" value="disabled by admin"';?> type="text" name="Ssendmail_from" /> (optional)
<input type="submit" value="Submit" />
</form></body>
</html>