Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / файл в писме / 10 сообщений из 10, страница 1 из 1
01.04.2019, 10:25
    #39794451
VladimirVVP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
использую PHPMailer
не получается загрузить файл

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
<?php
 
require 'mail/PHPMailerAutoload.php';
 
$vernii_shifr = $_REQUEST[pass];
$pol_shifr = '1230';// пороль страницы

If($vernii_shifr == $pol_shifr){
$mail = new PHPMailer;
$mail -> isSMTP();
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html'; 
$mail ->Host = $_REQUEST[Host]; //smtp адрес
$mail ->SMTPAuth = true;
$mail ->Username = $_REQUEST[Username];    //Логин
$mail ->Password = $_REQUEST[Password];     //Пароль
$mail ->SMTPSecure = $_REQUEST[SMTPSecure];   
$mail ->Port = $_REQUEST[Port]; // порт
 
$mail ->setFrom($_REQUEST[setFrom]); 
$mail ->addAddress($_REQUEST[addAddress]);//Получатель
$mail ->addAttachment=($_REQUEST[sendFile]);  //Прикрепить файл 
$mail ->isHTML(False);
 
$mail ->Subject = $_REQUEST[Subject]; //Тема письма
$mail ->Body    = $_REQUEST[mmessage];//<b>HTML</b> версия письма
//$mail ->AltBody = 'fggg';//Текстовая версия письма, без HTML тегов (для клиентов не поддерживающих HTML)

//Отправка сообщения
if(!$mail->send()) {
    echo 'Ошибка при отправке. Ошибка: ' . $mail->ErrorInfo;
} else {
    echo 'Сообщение успешно отправлено';
}
} else {
echo 'спам';
}
...
Рейтинг: 0 / 0
01.04.2019, 11:07
    #39794472
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
автор
Код: php
1.
$mail ->addAttachment=($_REQUEST[sendFile]);  //Прикрепить файл 

Равно убрать для начала.

PS: Спам-рассыльщик?
...
Рейтинг: 0 / 0
01.04.2019, 11:21
    #39794485
VladimirVVP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
vkleавтор
Код: php
1.
$mail ->addAttachment=($_REQUEST[sendFile]);  //Прикрепить файл 

Равно убрать для начала.

PS: Спам-рассыльщик?

убрал - ноль эмоций...
нет, я писал программу на delphi, в программе должна быть возможность отправки писем с файлами (отчетами), дело в том, что порты 587 25 и 645 почему-то не всегда работают, то проблема в винде то у провайдера, решил сделать через PHPMailer, все работает, но вот файлы не отправляет...

нашел вот такое решение
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
// Прикрепление файлов
 for ($ct = 0; $ct < count($_FILES[‘userfile’][‘tmp_name’]); $ct++) {
 $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES[‘userfile’][‘name’][$ct]));
 $filename = $_FILES[‘userfile’][‘name’][$ct];
 if (move_uploaded_file($_FILES[‘userfile’][‘tmp_name’][$ct], $uploadfile)) {
 $mail->addAttachment($uploadfile, $filename);
 } else {
 $msg .= ‘Failed to move file to ‘ . $uploadfile;
 }
 } 



не могу понять его применить в моем случае
информацию о файле получаю в $_REQUEST[sendFile]
...
Рейтинг: 0 / 0
01.04.2019, 11:32
    #39794497
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
> $_REQUEST[sendFile]

1. откройте документацию php и почитайте что там и как использовать
2. почитайте документацию по используемой библиотеке, чтобы понять чего требует addAttachment
...
Рейтинг: 0 / 0
01.04.2019, 12:22
    #39794529
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
VladimirVVPнет, я писал программу на delphi, в программе должна быть возможность отправки писем с файлами (отчетами), дело в том, что порты 587 25 и 645 почему-то не всегда работают, то проблема в винде то у провайдера, решил сделать через PHPMailer, все работаетПорты можно закрыть (и открыть) на любой машине, было бы желание. Да и на никсовых серверах нередко встречается запрет или жесткие ограничения по отправке почты. В этом смысле аргумент так себе.
Кроме того, чтобы предотвратить несанкционированную рассылку, следует данный скрипт дополнить достаточно жесткими ограничениями, чтобы кто угодно не мог им воспользоваться. Конечно, "пороль", вижу, но средств защиты от подбора не просматривается.

VladimirVVPне могу понять его применить в моем случаеЭто довольно обычный код, который позволяет загрузить файл на сервер и сохранить его. Разумеется, файл должен быть отправлен скрипту. Надеюсь, где-то дальше есть код, который удаляет ставшие уже ненужными файлы.

VladimirVVPинформацию о файле получаю в $_REQUEST[sendFile]Какую именно информацию? PHPMailer в addAttachment() ожидает имя файла на локальном по отношению к скрипту сервере (см. код метода). Очевидно, файл сперва должен быть загружен на сервер, сохранен под каким-то именем и только потом может быть использован для формирования письма.
...
Рейтинг: 0 / 0
01.04.2019, 14:01
    #39794588
VladimirVVP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
vkle, и так с начало нужно загрузить файл на сервер

Код: php
1.
2.
$uploaddir = 'mail/uploads/';
$uploadfile = $uploaddir . basename($_REQUEST[sendFile][nameFile]);



sendFile - дирректория на файла на пк
nameFile - имя файла
я правильно понимаю?
...
Рейтинг: 0 / 0
01.04.2019, 14:51
    #39794629
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
VladimirVVP, каша какая-то...
Почитайте документацию по загрузке файлов https://www.php.net/manual/ru/features.file-upload.php
...
Рейтинг: 0 / 0
01.04.2019, 15:43
    #39794654
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
VladimirVVP,

В принципе, для данного случая с загрузкой единичного файла вполне достаточно (после прохождения проверок на ошибки) для addAttachment() в качестве первого параметра взять непосредственно $_FILES['userfile']['tmp_name'] в качестве имени файла на сервере. Это полезно ещё и тем, что PHP автоматически зачистит загруженный файл после окончания работы скрипта.
И, если необходимо обеспечить оригинальное имя прикрепляемого к письму файла, $_FILES['userfile']['name'] передать вторым параметром.
Здесь 'userfile' - имя поля для передачи файла, как в документации.
Остальное, в общем то, лишнее.

Однако, вероятно, сперва Вам придется в программе на делфи реализовать загрузку файла на удаленный сервер.
...
Рейтинг: 0 / 0
01.04.2019, 16:25
    #39794690
VladimirVVP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
vkle,в общем дело так, попробовал этот вариант
Код: php
1.
2.
3.
4.
5.
6.
if ($_FILES && $_FILES['filename']['error']== UPLOAD_ERR_OK)
{
    $name = $_FILES['filename']['name'];
    move_uploaded_file($_FILES['filename']['tmp_name'], $name);
    echo "Файл загружен";
}



через браузер загружает .... но если через программу то просто создается пустой файл с именем... файл передаю через HTTPPost..
пойду пока за бубном - если получится отпишусь
...
Рейтинг: 0 / 0
01.04.2019, 16:52
    #39794709
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
файл в писме
VladimirVVP,

Что кажет var_dump($_FILES); ?
Про enctype="multipart/form-data" или как оно там в делфи будет... не забыли?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / файл в писме / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]