Yeti CRM не будет прикреплять файлы с помощью PHPMailerPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Yeti CRM не будет прикреплять файлы с помощью PHPMailer

Сообщение Anonymous »

Я использую форму в Yeti CRM, которая позволяет пользователю просматривать документ, а затем дает ему возможность отправить этот документ по электронной почте. Он использует PHPMailer, но я не могу заставить его прикрепить документ. Все остальные поля реагируют на изменения («Кому», «От», «Тема», «Тело»), но ничего не прикрепляется. Журналы ошибок не выдают ошибок.

Я пытался напрямую связать файл, о существовании которого я знаю, но все равно безуспешно. Может ли кто-нибудь увидеть в приведенном ниже коде место, где я на самом деле не прикрепляю документ?

Вот функция PHP

Код: Выделить всё

public function process(\App\Request $request)
{
$moduleName = $request->getModule();
$recordId = $request->getInteger('record');
$documentRecordModel = Vtiger_Record_Model::getInstanceById($recordId, $moduleName);
$currentUser = Users_Record_Model::getCurrentUserModel();

$mails = $request->get('to');
$message = $request->get('message');
$from['email'] = $currentUser->get('email1');
$name = $currentUser->get('first_name') . " " . $currentUser->get('last_name');
$from['name'] = $name;
$file = $documentRecordModel->get('filename');
$title = $documentRecordModel->get('notes_title') . substr($file, strrpos($file, "."));
if (strpos($file, "\\\\") !== false) {
$file = trim($file);
$file = str_replace('\\\\', '\\', $file);
$file = str_replace('\\', '/', $file);
$file = str_replace(' ', '%20', $file);
$file = ROOT_DIRECTORY . DIRECTORY_SEPARATOR .
"public_html" . DIRECTORY_SEPARATOR .
"external" .
$file;
$attachment[$file] = $title;
} else {
//this is a http type document, so just link straight to it.
$message .= '
' . '[url= . $file . ]' . $title .  '[/url]';
}

if (count($mails) > 0) {
$results[] = \App\Mailer::sendFromTemplate([
'template' => 'ZcoSendPDFFile',
'moduleName' => 'Documents',
'recordId' => $recordId,
'to' => $mails,
'from' => $from,
'message' => $message,
'attachments' => $attachment,
//'smtp_id' => 2,
]);
}
$response = new Vtiger_Response();
$response->setResult($results);
$response->emit();
}


Это js-файл, в котором создаются параметры

Код: Выделить всё

$(document).ready(function () {
var form = document.getElementById("emailDocument");
form.onsubmit = function (event) {
event.preventDefault();
let thisInstance = this;
let fromEmail = $("#fromEmail").html();
let toEmail = $("#toEmail").val();
let message = $("#message").val();
let recordId = getParameterByName("record");
let attachment = $("#pdfAttach").html();
let params = {
'module': 'Documents',
'action': 'ZcoEmailFile',
'mode': 'process',
'from': fromEmail,
'to': toEmail,
'message': message,
'record': recordId,
'attachments': attachment
};
$.post({
url: "index.php",
data: params,
ContentType: "text/json",
success: function() {
alert('Email has been sent!');
},
beforeSend: function(xhr) {
$("#submitEmail").attr("disabled", "disabled");
},
complete: function() {
$("#submitEmail").removeAttr("disabled");
},
error: function(msg) {
alert(JSON.stringify(msg));
}
});
};
});

И форма

Код: Выделить всё

{$FILENAME}


From:
{$USER_MODEL->get('email1')}

To:




Additional Message:






Письмо отправляется нормально со всеми полями, кроме вложения. Я не использовал PHP уже шесть лет, поэтому достаточно сказать, что я немного подзабыл. Кто-нибудь может понять, почему вложение не прикрепляется?

Подробнее здесь: https://stackoverflow.com/questions/565 ... -phpmailer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»