| When you need to get content with POST method in PHP internal code, you need to get the desired result through alternate socket programming as below.
Actually what I wanted is emailing through alternate server located in different domain, because the current server has some limitation.
The following code is implemented at caller server. <?php
// caller page : kmail.php
// programmed by Super Coder / Chunun Kang (kurapa@kurapa.com)
function kmail( $recipient, $subject, $body)
{
$host = "foo.com";
$uri = "/api/kmail_api.php";
// acutally security code is removed on below code.
// you can add it by yourself.
$reqbody = "s=" . urlencode($subject)
. "&b=" . urlencode($body)
. "&f=" . urlencode('SAMSUNGDForum')
. "&h=" . urlencode($headers)
. "&r=" . urlencode($recipient);
$contentlength = strlen($reqbody);
$reqheader = "POST $uri HTTP/1.0xdxa".
"Host: $hostxdxa". "User-Agent: Mozalaxdxa".
"Content-Type: application/x-www-form-urlencodedxdxa".
"Content-Length: $contentlengthxdxaxdxa".
"$reqbodyxdxa";
$socket = fsockopen($host, 80, $errno, $errstr);
if (!$socket)
{
$result["errno"] = $errno;
$result["errstr"] = $errstr;
return $result;
}
fputs($socket, $reqheader);
while (!feof($socket))
{
$result[] = fgets($socket, 4096);
}
fclose($socket);
return $result;
}
In addition you need to add following callee PHP page on your callee server.
<?php
// callee page : /api/kmail.php
// programmed by Super Coder / Chunun Kang (kurapa@kurapa.com)
$title = '=?utf-8?b?'.base64_encode($s).'?=';
$recipient = $r;
if (strlen($h)<1)
{
if (strlen($f)>0)
{
$h = "From: $f <no-reply@foo.com> ";
}
else
{
$h = "From: NO-REPLY <no-reply@foo.com> ";
}
$h .= "X-Sender: no-reply@foo.com ";
$h .= "X-Mailer: Mozala PHP ".phpversion()." ";
}
mail($recipient , $title, $b, $h);
?>
Finally what you need to do is including above caller page to call kmail function. include "./kmail.php";
kmail( "foo@foo.com", "howdy?", "test message from Chunun Kang (kurapa@kurapa.com");
|