function SendMail($File, $arMail, $sMessageName = "Письмо с вложением", $sMessageText = "Текст выпуска")
{
CModule::IncludeModule("subscribe");
if($File != "" && file_exists($_SERVER['DOCUMENT_ROOT'].$File))
{
// создаем рубрику для рассылок
$RUB_ID = "";
$rub = CRubric::GetList(array(), array("ACTIVE"=>"Y", "NAME" => "Письма с вложениями"));
if(!$arRub = $rub->Fetch())
{
$rubric = new CRubric;
$arFields = Array(
"ACTIVE" => "Y",
"NAME" => "Письма с вложениями",
"LID" => SITE_ID
);
$RUB_ID = $rubric->Add($arFields);
if($RUB_ID == false) {
echo $rubric->LAST_ERROR;
return "Не удалось добавить рубрику";
}
}
else {
$RUB_ID = $arRub["ID"];
}
// создаем выпуск и прикрепляем к нему файл
$posting = new CPosting;
$arFields = Array(
"FROM_FIELD" => COption::GetOptionString("main", "email_from"),
"TO_FIELD" => COption::GetOptionString("main", "email_from"),
"BCC_FIELD" => implode(", ", $arMail),
"SUBJECT" => $sMessageName,
"BODY_TYPE" => "html",
"BODY" => $sMessageText,
"DIRECT_SEND" => "N",
"CHARSET" => "Windows-1251",
"RUB_ID" => array($RUB_ID),
"STATUS" => "P"
);
$POST_ID = $posting->Add($arFields);
if($POST_ID == false) {
echo $posting->LAST_ERROR;
return "Не удалось добавить выпуск";
}
else
{
// прикрепляем файл
$file_id = CPosting::SaveFile($POST_ID,
array(
"name" => "Прикрепленный файл",
"size" => filesize($_SERVER['DOCUMENT_ROOT'].$File),
"tmp_name" => $_SERVER['DOCUMENT_ROOT'].$File,
"type" => "html"
)
);
if($file_id===false) {
return "Ошибка при сохранении вложения";
}
else {
echo $POST_ID;
// генерим рассылку
if(!$posting->SendMessage($POST_ID)) {
echo $posting->LAST_ERROR;
}
}
}
}
else
{
if($File != "")
return "Введите путь к прикрепляемому файлу";
elseif(!file_exists($_SERVER['DOCUMENT_ROOT'].$File))
return "Такого файла не существует";
}
return true;
}
|