Я пытался напрямую связать файл, о существовании которого я знаю, но все равно безуспешно. Может ли кто-нибудь увидеть в приведенном ниже коде место, где я на самом деле не прикрепляю документ?
Вот функция 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:
Подробнее здесь: https://stackoverflow.com/questions/565 ... -phpmailer
Мобильная версия