Advertisement
Tsyklop

php code

Aug 16th, 2016
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.35 KB | None | 0 0
  1. <?
  2.  
  3. include($_SERVER['DOCUMENT_ROOT']."/newPDF/newPDF.php");
  4.  
  5. function SendAttache($event, $lid, $arFields, $filePath)
  6. {
  7. global $DB;
  8.  
  9. $event = $DB->ForSQL($event);
  10. $lid = $DB->ForSQL($lid);
  11.  
  12. $rsMessTpl = $DB->Query("SELECT * FROM b_event_message WHERE EVENT_NAME='$event' AND LID='$lid';");
  13. while ($arMessTpl = $rsMessTpl->Fetch())
  14. {
  15. // get charset
  16. $strSql = "SELECT CHARSET FROM b_lang WHERE LID='$lid' ORDER BY DEF DESC, SORT";
  17. $dbCharset = $DB->Query($strSql, false, "FILE: ".__FILE__."<br>LINE: ".__LINE__);
  18. $arCharset = $dbCharset->Fetch();
  19. $charset = $arCharset["CHARSET"];
  20.  
  21. // additional params
  22. if (!isset($arFields["DEFAULT_EMAIL_FROM"]))
  23. $arFields["DEFAULT_EMAIL_FROM"] = COption::GetOptionString("main", "email_from", "admin@".$GLOBALS["SERVER_NAME"]);
  24. if (!isset($arFields["SITE_NAME"]))
  25. $arFields["SITE_NAME"] = COption::GetOptionString("main", "site_name", $GLOBALS["SERVER_NAME"]);
  26. if (!isset($arFields["SERVER_NAME"]))
  27. $arFields["SERVER_NAME"] = COption::GetOptionString("main", "server_name", $GLOBALS["SERVER_NAME"]);
  28.  
  29. // replace
  30. $from = CAllEvent::ReplaceTemplate($arMessTpl["EMAIL_FROM"], $arFields);
  31. $to = CAllEvent::ReplaceTemplate($arMessTpl["EMAIL_TO"], $arFields);
  32. $message = CAllEvent::ReplaceTemplate($arMessTpl["MESSAGE"], $arFields);
  33. $subj = CAllEvent::ReplaceTemplate($arMessTpl["SUBJECT"], $arFields);
  34. $bcc = CAllEvent::ReplaceTemplate($arMessTpl["BCC"], $arFields);
  35.  
  36.  
  37. $from = trim($from, "\r\n");
  38. $to = trim($to, "\r\n");
  39. $subj = trim($subj, "\r\n");
  40. $bcc = trim($bcc, "\r\n");
  41.  
  42. if(COption::GetOptionString("main", "convert_mail_header", "Y")=="Y")
  43. {
  44. $from = CAllEvent::EncodeMimeString($from, $charset);
  45. $to = CAllEvent::EncodeMimeString($to, $charset);
  46. $subj = CAllEvent::EncodeMimeString($subj, $charset);
  47. }
  48.  
  49. $all_bcc = COption::GetOptionString("main", "all_bcc", "");
  50. if ($all_bcc != "")
  51. {
  52. $bcc .= (strlen($bcc)>0 ? "," : "") . $all_bcc;
  53. $duplicate = "Y";
  54. }
  55. else
  56. {
  57. $duplicate = "N";
  58. }
  59.  
  60. $strCFields = "";
  61. $cSearch = count($arSearch);
  62. foreach ($arSearch as $id => $key)
  63. {
  64. $strCFields .= substr($key, 1, strlen($key)-2)."=".$arReplace[$id];
  65. if ($id < $cSearch-1)
  66. $strCFields .= "&";
  67. }
  68.  
  69. if (COption::GetOptionString("main", "CONVERT_UNIX_NEWLINE_2_WINDOWS", "N") == "Y")
  70. $message = str_replace("\n", "\r\n", $message);
  71.  
  72. // read file(s)
  73. $arFiles = array();
  74. if (!is_array($filePath))
  75. $filePath = array($filePath);
  76. foreach ($filePath as $fPath)
  77. {
  78. $arFiles[] = array(
  79. "F_PATH" => $_SERVER['DOCUMENT_ROOT'].$fPath,
  80. "F_LINK" => $f = fopen($_SERVER['DOCUMENT_ROOT'].$fPath, "rb")
  81. );
  82. }
  83.  
  84. $un = strtoupper(uniqid(time()));
  85. $eol = CAllEvent::GetMailEOL();
  86. $head = $body = "";
  87.  
  88. // header
  89. $head .= "Mime-Version: 1.0".$eol;
  90. $head .= "From: $from".$eol;
  91. if(COption::GetOptionString("main", "fill_to_mail", "N")=="Y")
  92. $header = "To: $to".$eol;
  93. $head .= "Reply-To: $from".$eol;
  94. $head .= "X-Priority: 3 (Normal)".$eol;
  95. $head .= "X-MID: $messID.".$arMessTpl["ID"]."(".date($DB->DateFormatToPHP(CLang::GetDateFormat("FULL"))).")".$eol;
  96. $head .= "X-EVENT_NAME: ISALE_KEY_F_SEND".$eol;
  97. if (strpos($bcc, "@") !== false)
  98. $head .= "BCC: $bcc".$eol;
  99. $head .= "Content-Type: multipart/mixed; ";
  100. $head .= "boundary=\"----".$un."\"".$eol.$eol;
  101.  
  102. // body
  103. $body = "------".$un.$eol;
  104. if ($arMessTpl["BODY_TYPE"] == "text")
  105. $body .= "Content-Type:text/plain; charset=".$charset.$eol;
  106. else
  107. $body .= "Content-Type:text/html; charset=".$charset.$eol;
  108. $body .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
  109. $body .= $message.$eol.$eol;
  110.  
  111. foreach ($arFiles as $arF)
  112. {
  113. $body .= "------".$un.$eol;
  114. $body .= "Content-Type: application/octet-stream; name=\"".basename($arF["F_PATH"])."\"".$eol;
  115. $body .= "Content-Disposition:attachment; filename=\"".basename($arF["F_PATH"])."\"".$eol;
  116. $body .= "Content-Transfer-Encoding: base64".$eol.$eol;
  117. $body .= chunk_split(base64_encode(fread($arF["F_LINK"], filesize($arF["F_PATH"])))).$eol.$eol;
  118. }
  119. $body .= "------".$un."--";
  120.  
  121. $filePath = GeneratePDF($arFields['ORDER_ID'], $head.$body);
  122.  
  123. // send
  124. if (!defined("ONLY_EMAIL") || $to==ONLY_EMAIL)
  125. bxmail($to, $subj, $body, $head, COption::GetOptionString("main", "mail_additional_parameters", ""));
  126. }
  127. }
  128. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement