Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
maxim_marach
0 / 0 / 0
Регистрация: 07.10.2015
Сообщений: 20
1

Отправить картинку на почту через PHP

03.10.2017, 17:40. Просмотров 488. Ответов 1
Метки нет (Все метки)

Нужно отправить на почту несколько картинок помогите отредактировать код или может у кого есть рабочий.
Локальный путь к картинкам my_site.loc/images/img_k/...

Функция mail перестает работать после кода.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// прикрепляем файлы ===>>>
foreach($attach as $filename){
    $mimeType='image/png';
    $fileContent = file_get_contents($filename,true);
    $filename=basename($filename);
    $message.="--$newboundary\r\n";
    $message.="Content-Type: $mimeType;\r\n";
    $message.=" name=\"$filename\"\r\n";
    $message.="Content-Transfer-Encoding: base64\r\n";
    $message.="Content-ID: <$filename>\r\n";
    $message.="Content-Disposition: inline;\r\n";
    $message.=" filename=\"$filename\"\r\n\r\n";
    $message.=chunk_split(base64_encode($fileContent));
}
Полный код.
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<? 
// картинки
$attach = array(
    './images/img_k/f1.png',
    './images/img_k/f2.png'
);
// чтобы отображалась картинка и ее не было в аттаче
// путь к картинке задается через CID: - Content-ID
// тестовый текст
$text = '
    <div style="width: 700px; margin: 0 auto;">
        <h1>тело письма с картинкой</h1>
        <h2>Блок по центру</h2>
        <p>
            <img style="float: left; margin-right: 15px; margin-bottom: 15px;" src="cid:f1.png" width="128" height="128" />
            Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. Какой-то текст вокруг картинки.
            <br/>
            <img style="float: left; margin-right: 15px; margin-bottom: 15px;" src="cid:f2.png" width="128" height="128" />
            Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. Какой-то текст вокруг картинки. Какой-то текст вокруг картинки.
        </p>
    </div>
';
 
$from = "maxim_marach1995@mail.ru";
$to = "maxim_marach1995@mail.ru";
$subject = "Тема письма";
 
// Заголовки письма === >>>
$headers = "From: $from\r\n";
//$headers .= "To: $to\r\n";
$headers .= "Subject: $subject\r\n";
$headers .= "Date: " . date("r") . "\r\n";
$headers .= "X-Mailer: zm php script\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/alternative;\r\n";
$baseboundary = "------------" . strtoupper(md5(uniqid(rand(), true)));
$headers .= "  boundary=\"$baseboundary\"\r\n";
// <<< ====================
 
// Тело письма === >>>
$message  =  "--$baseboundary\r\n";
$message .= "Content-Type: text/plain;\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$message .= "--$baseboundary\r\n";
$newboundary = "------------" . strtoupper(md5(uniqid(rand(), true)));
$message .= "Content-Type: multipart/related;\r\n";
$message .= "  boundary=\"$newboundary\"\r\n\r\n\r\n";
$message .= "--$newboundary\r\n";
$message .= "Content-Type: text/html; charset=utf-8\r\n";
$message .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$message .= $text . "\r\n\r\n";
// <<< ==============
 
// прикрепляем файлы ===>>>
foreach($attach as $filename){
    $mimeType='image/png';
    $fileContent = file_get_contents($filename,true);
    $filename=basename($filename);
    $message.="--$newboundary\r\n";
    $message.="Content-Type: $mimeType;\r\n";
    $message.=" name=\"$filename\"\r\n";
    $message.="Content-Transfer-Encoding: base64\r\n";
    $message.="Content-ID: <$filename>\r\n";
    $message.="Content-Disposition: inline;\r\n";
    $message.=" filename=\"$filename\"\r\n\r\n";
    $message.=chunk_split(base64_encode($fileContent));
}
// <<< ====================
 
// заканчиваем тело письма, дописываем разделители
$message.="--$newboundary--\r\n\r\n";
$message.="--$baseboundary--\r\n";
 
// отправка письма
mail("$to", "$subject", "$message");
?>
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2017, 17:40
Ответы с готовыми решениями:

Модуль php для apache не может отправить почту
Есть система lfs версии 7.0 В ней из исходников собран apache версии 2.4.18 и php версии 5.5.13...

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

Как отправить json через ajax на php для записи в БД?
здравствуйте подскажите пожалуйста как отправить через ajax json где в нем хранится ид товара...

Как с сайта отправить pdf на почту?
Всем привет! На сайте есть форма с фоновым изображением, заполнив которую пользователя перекидывает...

Как отправить логин из сессии на почту?
Всем лучей добра. Ребята, подскажите как отправить логин из сессии на почту с помощью функции...

1
wolfalone
В экстазе
165 / 149 / 38
Регистрация: 05.08.2012
Сообщений: 756
Записей в блоге: 3
04.10.2017, 11:38 2
Цитата Сообщение от maxim_marach Посмотреть сообщение
код или может у кого есть рабочий
Рабочий код есть вот тут или (вариант посложнее) например тут и т.д.
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2017, 11:38

Как отправить некие данные на почту?
Есть форма, которая принимает имя пользователя (name=&quot;name&quot;) и его телефон (name=&quot;phone&quot;). Как...

Как отправить картинку на почту
&lt;?php $title = substr(htmlspecialchars(trim($_POST)), 0, 1000); $mess = ...

Отправить данные на почту через форму
Коротко о проблеме гуглю уже 4 дня не могу понять как так как связать эту форму чтоб она...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru