สวัสดีครับ
คือผมเขียน windows console app ด้วย C# ส่งค่าให้ Web API ใน Format JSON ส่งไปเพื่อขอใช้บริการส่งเมล์ของ Web API
โค้ดดังนี้
**********************************
var httpWebRequest = (HttpWebRequest)WebRequest.Create("
https://XXXX.mail.com/v1.0/transactional/post/json?accept_token=XXXXXX-Eli4VNvmBzeHvIfB8PpWwKmJXJ9fEtq1Ux55crt8dyoGgePCX15h7prjYZaF52nRATc9sDGLRViHQzQUbsTD3YS2laxdZW0Mu0130FkOEaxPTwyDCcBojWnq9LU8bf0m1ASSSSSSl2S4dIeQspRNXZMtJ6Khg200");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new
{
from_name = "Nopphadol",
from_email = "nopphadol@xxxxx.co.th",
to = "nopphadol_xxxx@gmail.com",
subject = "subject test",
message = "message test"
});
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
**********************************
ตอนนี้ผมทำได้แล้วแต่ยังติดเรื่องการ attach file ครับ
จากโค้ดเบื้องต้นของผมถ้าเพิ่มให้มัน attach file ด้วยจะทำไงครับผมหาใน google มาหลายวันแล้วไปไม่ถูกสักที
จาก Web ที่ให้บริการส่งเมลเค้าให้โค้ดมาครับ แต่เป็น PHP ผมแปลงมาเป็น C# ไม่เป็น
********************************************
$post = array();
$url = 'https://xxxxx.mail.com/v1.0/transactional/post/json?accept_token=XXXXXXBmfucf0Np567...';
$file_name_with_full_path = getCurlValue('/var/www/html/uploads/img/Line@2x.png','image/png','cattle-01.png'); // (path_file, type, name)
$data = array(
'from_email' => 'example@mail.com',
'from_name' => 'Account Kondee',
'to' => 'example@mailto.com',
'subject' => 'ทดสอบการแนบไฟล์',
'message' => 'ทดสอบการทำงานของระบบ',
'attachment' => $file_name_with_full_path
);
// print_pre($data); die;
$headers = array("Content-Type" => "multipart/form-data");
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$rs = curl_exec($ch);
if($rs === false)
{
echo 'Curl error: ' . curl_error($ch);
}
curl_close ($ch);
print_r($rs);
function getCurlValue($filename, $contentType, $postname){
if (function_exists('curl_file_create')){
return curl_file_create($filename, $contentType, $postname);
}
$value = "@{$filename};filename=" . $postname;
if ($contentType){ $value .= ';type=' . $contentType; }
return $value;
********************************************
รบกวนผู้รู้ช่วยแนะนำทีครับ
ขอบคุณล่วงหน้าครับ
รบกวนสอบถามเกี่ยวกับ JSON With C# หน่อยครับ
คือผมเขียน windows console app ด้วย C# ส่งค่าให้ Web API ใน Format JSON ส่งไปเพื่อขอใช้บริการส่งเมล์ของ Web API
โค้ดดังนี้
**********************************
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://XXXX.mail.com/v1.0/transactional/post/json?accept_token=XXXXXX-Eli4VNvmBzeHvIfB8PpWwKmJXJ9fEtq1Ux55crt8dyoGgePCX15h7prjYZaF52nRATc9sDGLRViHQzQUbsTD3YS2laxdZW0Mu0130FkOEaxPTwyDCcBojWnq9LU8bf0m1ASSSSSSl2S4dIeQspRNXZMtJ6Khg200");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = new JavaScriptSerializer().Serialize(new
{
from_name = "Nopphadol",
from_email = "nopphadol@xxxxx.co.th",
to = "nopphadol_xxxx@gmail.com",
subject = "subject test",
message = "message test"
});
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
**********************************
ตอนนี้ผมทำได้แล้วแต่ยังติดเรื่องการ attach file ครับ
จากโค้ดเบื้องต้นของผมถ้าเพิ่มให้มัน attach file ด้วยจะทำไงครับผมหาใน google มาหลายวันแล้วไปไม่ถูกสักที
จาก Web ที่ให้บริการส่งเมลเค้าให้โค้ดมาครับ แต่เป็น PHP ผมแปลงมาเป็น C# ไม่เป็น
********************************************
$post = array();
$url = 'https://xxxxx.mail.com/v1.0/transactional/post/json?accept_token=XXXXXXBmfucf0Np567...';
$file_name_with_full_path = getCurlValue('/var/www/html/uploads/img/Line@2x.png','image/png','cattle-01.png'); // (path_file, type, name)
$data = array(
'from_email' => 'example@mail.com',
'from_name' => 'Account Kondee',
'to' => 'example@mailto.com',
'subject' => 'ทดสอบการแนบไฟล์',
'message' => 'ทดสอบการทำงานของระบบ',
'attachment' => $file_name_with_full_path
);
// print_pre($data); die;
$headers = array("Content-Type" => "multipart/form-data");
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$rs = curl_exec($ch);
if($rs === false)
{
echo 'Curl error: ' . curl_error($ch);
}
curl_close ($ch);
print_r($rs);
function getCurlValue($filename, $contentType, $postname){
if (function_exists('curl_file_create')){
return curl_file_create($filename, $contentType, $postname);
}
$value = "@{$filename};filename=" . $postname;
if ($contentType){ $value .= ';type=' . $contentType; }
return $value;
********************************************
รบกวนผู้รู้ช่วยแนะนำทีครับ
ขอบคุณล่วงหน้าครับ