powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / файл в писме
10 сообщений из 10, страница 1 из 1
файл в писме
    #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
файл в писме
    #39794472
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Код: php
1.
$mail ->addAttachment=($_REQUEST[sendFile]);  //Прикрепить файл 

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

PS: Спам-рассыльщик?
...
Рейтинг: 0 / 0
файл в писме
    #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
файл в писме
    #39794497
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> $_REQUEST[sendFile]

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

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

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

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



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

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

Однако, вероятно, сперва Вам придется в программе на делфи реализовать загрузку файла на удаленный сервер.
...
Рейтинг: 0 / 0
файл в писме
    #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
файл в писме
    #39794709
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladimirVVP,

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


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