Php mail отправка файла: email — Отправка вложений в письме PHP

Php mail отправка файла — Dudom

Отправка писем в php осуществляется с помощью функции mail()

to — емайл получателя
subject — заголовок письма
message — текст письма, сообщение
mailheaders — почтовые заголовки

Отправка обычного текстового письма

Это самый простой способ отправки писем. Вы просто указываете емайл получателя, отправителя и формат text/plain в заголовке. Далее идет пример

Отправка html-письма, в которое можно вставлять таблицы, рисунки, различные шрифты, стили оформления

Отправка писем в html формате почти ничем не отличается от отправки писем в текстовом формате. В заголовке вы указываете формат письма text/html а в самом письме вместо обычного текста помещаете html-код.

Рассмотрим на примере

Отправка письма с вложением

Чтобы прикрепить файл к письму потребуется немного более длинный код, но это тоже довольно просто. В приведенном далее коде пропишите имя вашего файла который вы хотите отправить а также его расположение

Отправка писем сразу нескольким адресатам

Чтобы отправить письмо сразу нескольким адресатам, лучше всего использовать заголовок Bcc: который отправляет копию письма на указанный емайл

В этой статье я собираюсь осветить тему отправки файлов по e-mail на PHP. Задача эта весьма популярная, а вот многие не знают, как это делается и научились только отправлять обычные письма без вложенных файлов. Этот пробел я постараюсь заполнить.

Я написал скрипт, который Вы смело можете копировать и использовать в своих скриптах. Данный код позволяет отправлять файлы по e-mail через PHP:

Скрипт достаточно хорошо прокомментирован, но я добавлю ещё один важный момент. Обратите внимание, что если идут вложенные файлы, то текст письма нужно тоже делать, как прикрепление к письму, однако, тип содержимого будет другой. Это весьма серьёзная особенность, если не сделать так, то текст письма отправлен не будет. Это очень частая ошибка, поэтому обратите на это особое внимание.

Данный PHP-скрипт для отправки файлов по e-mail сделан максимально коротким, он универсален, поэтому Вы можете его дорабатывать под свои нужды так, как пожелаете.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov. ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Она выглядит вот так:

  • BB-код ссылки для форумов (например, можете поставить её в подписи):
  • Комментарии ( 19 ):

    Михайл Русаков ;). Со светлым Рождеством Христовым! Я тебя очень прошу каждые исходники и добавить и покажи «Результат данного примера показан» например как у htmlbook.ru Я тебя предлагаю мое мнение это удобно видеть примеры и все будет понял. Заранее спасибо большое ;). Удачи.

    У вас ошибочка! Написано «Данная код» Вы наверное имели ввиду «Данный код»

    Михаил здравствуйте, я хочу спросить, как можно отправлять несколько файлов. Очень надо. Заранее спасибо!

    Чтобы не изобретать велосипед, можете воспользоваться готовым классом наподобие PHPMailer, который это уже умеет.

    Как-то много долбался с этой ерундой, никак не собиралась работать. У формата email довольно жёсткий стандарт и все пересылаемые файлы кодируются в текстовом виде, запутаться легко. Кстати boundary не стоит делать слишком простым, иначе если эта последовательность попадётся в сегментах сообщения, то он решит, что это очередной разрыв и порвёт письмо.

    Михаил! Сделайте пожалуйста форму html для представленного здесь php обработчика, чтобы его можно было использовать или адаптировать под свои нужды. Такой код без примера html использовать могут только более менее знающие програмисты, а для начинающего разобраться без наглядного примера сложновато. .

    Вот форма и скрипт, они должны быть в разных файлах, в action нужно вставить имя файла со скриптом, если он будет не в одной директории с формой то прописать полный путь. Форма: А это немного переделанный скрипт, так как форма уже была и я подогнал по неё скрипт и дописал вывод сообщения при отправке или ошибке.

    А если нужно присоединить сообщение к оправке данных с полей формы, но только после действия (нажатия определённой кнопки) на другой странице сайта? И только после присоединения сообщения отправить. Как это прописать в скрипте? Я в программировании совсем ничего не понимаю.

    Михаил, спасибо за скрипт. Давно уже мучает такой вопрос, и не только меня наверное. Почему с сайта письма попадают в спам на gmail или бывает совсем не приходят? На все остальные почтовые сервисы письма приходят нормально.

    И ещё проблема. Ваш скрипт хорошо работает, но текст присылается со знаками вопросами ))) в ромбиках чёрных Что посоветуете?

    Как именно? Кодировка UTF-8 стоит, сам файл тоже в ней.

    Здравствуйте, Не могу понять где универсальность скрипта. Почему прописано имя файла «form.txt» и соответственно на почту приходит файл с этим именем. Как сохранить оригинальное имя файла (то что было на момент отправики)? Вопрос 2: почему приходит файл нулевого размера?

    Здравствуйте Михаил! Подскажите пожалуйста как прописать, что бы отправка имела такой вот вид http://rghost.ru/7bRSxGzVb/image.png При выборе отправляло данный файл! Спасибо!

    Добрій вечер. Мучает один вопрос. Почему когда приходит сообщение на єлектронную почту, то оно отображается как файл «noname.txt»? Как можно сделать, чтобы отображалось как текст или как изменить «noname» на другое назнавание? Спасибо

    Ищу как мне сделать скрипт на товарный одностраничник с апселлом. У вас самое толковое объяснение, как отправлять сообщения на почту. Но мне нужно: 1. Отправляем на ЛОГИН@yandex.ru 2. Считываем данные с полей формы Имя и Телефон 3. При нажатии кнопки «Отправить» на форме, перебрасывает на дополнительную страничку upsell. php. НО ПРИ ЭТОМ ДАННЫЕ С ПОЛЕЙ ФОРМЫ НЕ ОТПРАВЛЯЮТСЯ НА Е-МЭЙЛ, А СОХРАНЯЮТСЯ-ОЖИДАЮТ КОМАНДЫ ОТПРАВКИ. 4. На странице с апселлом есть 2 кнопки (нет никакой формы): а) если покупатель жмёт кнопку «Добавить в посылку», то вступает в дело функция отправки сообщения mail с собранными данными с полей формы и добавляется название дополнительного товара. Это всё выражается в конечном итоге в виде сообщения на е-мэйл Имя: Телефон: Название дополнительного товара. б) если покупатель жмёт кнопку «Отказаться», то вступает в дело функция отправки сообщения mail с собранными данными с полей формы, но уже без добавления дополнительного товара. Это всё выражается в конечном итоге в виде сообщения на е-мэйл Имя: Телефон:

    Здравствуйте,Михаил.Не могли бы Вы подсказать как можно организовать следующее.Мне нужно что бы человек,на моем сайте,выбрав нужный видеофайл смог бы сразу послать его на указанный им E-mail без скачивания файла на свой компютер.Файлы не большого размера 2-6мб.Буду рад любым подсказкам.

    Код содержит множество ошибок: Неправильный перенос строки, неверный разделитель, отсутствие кодирования письма. http://prntscr.com/jgwp7m

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2020 Русаков Михаил Юрьевич. Все права защищены.

    Пишу скрипт отправки почты с вложением.

    Каким образом можно добавить второе вложение из input type = «file» на форме?

    3 ответа 3

    Три простых шага для решения данной проблемы:

    1. Посмотреть на календарь и уточнить, какой сейчас век на дворе.
    2. Аккуратно выделить этот код, и нажать клавишу Del
    3. Скачать phpmailer
    4. Забыть все эти кустарные ковыряния как страшный сон.

    В итоге код должен получиться примерно таким:

    следует понимать, что отправка почты — это не просто копирование в свой скрипт каких-то определенных сочетаний символов, к оторые случайно сработали в прошлом веке у автора какой-либо допотопной статьи. Это гораздо более сложный процесс, который включает множество нюансов. И поэтому отправку почты надо не лепить вручную из подручных средств на ходу, а доверить проверенному и отлаженному решению.

    Загрузка файла на сервер в PHP (upload)

    Для того чтобы сделать систему загрузки картинки или любого другого файла на сервер используется HTML-форма и PHP-скрипт обработки данных, отправленных этой формой. Именно таким способом реализованы разнообразные сервисы поддерживающие загрузку файлов на сервер. Реализуется она подобно обычной форме отправки данных на сервер.

    HTML форма отправки файла

    Самая простая форма загрузки файла:

    <form method="post" action="upload.php" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
    <input type="file" name=" my_file ">
    <input type="submit" value="Загрузить файл">
    </form>

    В результате получим форму, содержащую поле для выбора файла и кнопку, отправляющую данные формы на сервер:

    Параметр entype получает в этой форме значение multipart/form-data, что определяет, что в данной форме будет выполнена отправка бинарных данных, т. е. файла. Если это значение не указать, то по умолчанию форма будет выполняться как отправка текстовой информации.

    Параметр method указывает метод отправки данных. Формы для загрузки файлов обычно используют метод передачи POST. Подробней о методах отправки форм можно узнать в статье «Отличия методов POST или GET»

    Параметр action содержит ссылку на PHP-файл, содержащий код обработки отправляемых данных.

    Параметр MAX_FILE_SIZE, указанный в форме определяет максимальный размер файла, заданный в байтах. По умолчанию, этот размер определяется настройками сервера.

    Для указания загружаемого файла тег <input> должен содержать тип «file», а так же для дальнейшей работы PHP-скрипта следует указать значение «name».

    Отправка данных формы выполняется тегом <input> с типом «submit». Он отображается обычной кнопкой.

    PHP код сохранения файла

    Задача этого обработчика, получив данные формы, проверить ее на возможные ошибки, переместить полученный сервером временный файл в нужное место с заданным именем. Здесь же могут выполнять еще различные необходимые операции – запись информации в БД, создание уменьшенных копий изображений, сохранение изображений с добавлением авторских прав и многое другое.

    В принимающем коде, данные о файле содержатся суперглобальном массиве $_FILES. Соответственно, просмотреть сведения об отправленном из формы файле, можно в $_FILES[‘my_file’]. Такой массив содержит следующую информацию:

    $_FILES[‘my_file’][‘name’] имя отправляемого файла
    $_FILES[‘my_file’][‘size’] размер загруженного файла в байтах
    $_FILES[‘my_file’][‘type’] MIME-тип принятого файла. Если он определяется, содержит, например: image/gif, image/png, image/jpeg, text/html
    $_FILES[‘my_file’][‘tmp_name’] содержит имя файла во временном каталоге, например: /tmp/phpR4n5wJ
    $_FILES[‘my_file’][‘error’] код ошибки $_FILES, если она возникла при загрузке файла

    После получения этой информации на сервере, файл должен быть скопирован в постоянную директорию, т. к. временный файл по завершении скрипта автоматически будет удален.

    Копирование выполняется функцией copy(), параметрами которой служит имя исходного файла (для этого случая имя временного файла — $_FILES[‘my_file’][‘tmp_name’]) и имя конечного файла.

    В итоге должен получиться следующий код:

    <?php
    // указание директории и имени нового файла на сервере
    $new_file = '/upload_files/'.$_FILES['uploadfile']['name'];

    // копирование файла
    if (copy($_FILES['uploadfile']['tmp_name'], $new_file)) {
    echo "Файл загружен на сервер";
    } else {
    echo "Ошибка при загрузке файла";
    ?>

    Копирование файла, должно выполняться в существующую папку на сервере с имеющимися правами на создание в ней файлов.

    В этом примере имя файла указывается тем же, как и у исходного загружаемого файла. В реале же очень часто имя задается в соответствии с собственными требованиями, чаще всего используя дату и время загрузки, что обеспечивает уникальность названия файла.

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

    Функция copy() возвращает значение true, если копирование выполнено успешно и False при возникновении ошибки в процессе копирования.

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

    Отправить HTML-письмо PHP с вложениями

    Если вы действительно хотите узнать, как форматировать Интернет-сообщение, вам следует обратиться к его запросу на комментарии (он же RFC). Тот, который определяет «Многоцелевые расширения почты Интернета — формат тел сообщений Интернета», — это RFC2045, выпущенный в ноябре 1996 года.

    Обычно сообщение содержит заголовок и тело. Заголовок определяет тип сообщения, способ его форматирования, некоторые другие поля, которые отличаются от одного типа к другому.

    Тело состоит из разных сущностей. Сущность может быть, например, просто текстом, таким как «Привет!» но также может быть изображением, вложением, чем угодно.

    ПРИМЕЧАНИЕ В следующих примерах все, что заключено в скобки (например, {hello}), должно быть заменено вашим реальным значением. Любая новая строка на самом деле является CRLF (т.е. ASCII 13 + ASCII 10). Там, где вы видите, к нему прилипают два CRLF. Это был бы худший момент, чтобы показать, насколько вы креативны.

    В основном для сообщения электронной почты с вложениями заголовок должен выглядеть так:

     MIME-версия: 1.0
    Кому: {email@domain}
    Тема: {тема письма}
    X-приоритет: {2 (высокий)}
    Content-Type: составной/смешанный; граница = "{смешанные границы}"
     

    В приведенном выше примере {mixed-boudary} может быть любым уникальным хэш-значением, например 000008050800060107020705. Остальные значения говорят сами за себя.

    Теперь каждый раз, когда мы хотим добавить к сообщению новый объект (например, тело сообщения, изображение, вложение), мы должны сообщить почтовому агенту, что появится новый раздел , т.е. чтобы префикс этого объекта со значением {mixed-boundary}. Мы называем это «открыть границу». Обратите внимание, что, открывая границу, мы не вставляем эту границу, как было определено изначально, мы используем еще 2 знака минуса впереди, например —{mixed-boudary}. Когда мы закрываем границу, мы действуем аналогичным образом, за исключением того, что мы должны использовать другие 2 знака минус в конце, например —{mixed-boudary}—

     --{смешанные границы}
    содержимое объекта
    --{смешанные границы}--
     

    Поскольку почтовый агент должен понимать, какой тип имеет содержимое нашего нового вставленного объекта, мы должны объявить это сразу после открытия границы. Объявление — это просто заголовок, который содержит только те параметры/значения, которые совместимы с сущностью.

    Для содержимого тела HTML мой заголовок сущности будет выглядеть так:

     Content-Type: text/html; кодировка = utf-8
    Контент-передача-кодирование: 7 бит
     

    , поэтому все тело (заключенное в границы) в итоге будет выглядеть так:

     --{mixed-boudary}
    Тип содержимого: текст/html; кодировка = utf-8
    Контент-передача-кодирование: 7 бит
    
    
    <тело bgcolor="#FFFFFF" текст="#000000">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Пеллентеск вел
    дапибус арку. Duis quam dui, ornare non mi nec, luctus faucibus massa. Вивамус
    quis purus in erat euismod ullamcorper vitae eget dolor. Аликвам временная эра
    accumsan, consectetur ex et, rhoncus risus.
    

    Если необходимо вставить другой объект, мы действуем точно так же, как описано выше. Когда больше нет данных для добавления к сообщению, мы закрываем смешанную границу, т.е. CRLF + —{смешанные границы}—.

    Если по какой-либо причине объект должен быть вставлен с альтернативным представлением (например, основное сообщение вставляется как в текстовом формате, так и в формате HTML), то содержимое объекта должно быть объявлено с типом содержимого multipart /alternative (хотя глобальный заголовок multipart/mixed все еще остается!). Каждое альтернативное представление будет заключено в эту новую границу.

    Полный пример ниже:

     MIME-версия: 1.0
    Кому: {email@domain}
    Тема: {тема письма}
    X-приоритет: {2 (высокий)}
    Content-Type: составной/смешанный; граница = "{смешанные границы}"
    --{смешанные границы}
    Content-Type: составной/альтернативный; граница = "{альтернативная граница}"
    --{альтернативная граница}
    Content-Type: текстовый/обычный; кодировка=utf-8;
    Контент-передача-кодирование: 7 бит
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Пеллентеск вел
    дапибус арку. Duis quam dui, ornare non mi nec, luctus faucibus massa. Вивамус
    quis purus in erat euismod ullamcorper vitae eget dolor.
    Аликвам временная эра accumsan, consectetur ex et, rhoncus risus. --{альтернативная граница} Тип содержимого: текст/html; кодировка=utf-8; Контент-передача-кодирование: 7 бит <тело bgcolor="#FFFFFF" текст="#000000"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Пеллентеск вел дапибус арку. Duis quam dui, ornare non mi nec, luctus faucibus massa. Вивамус quis purus in erat euismod ullamcorper vitae eget dolor. Аликвам временная эра accumsan, consectetur ex et, rhoncus risus.
    --{альтернативная граница}-- --{смешанные границы} Content-Type: приложение/pdf; имя = "мой файл.pdf" Контент-передача-кодирование: base64 Content-Disposition: вложение; имя файла="мой файл.pdf" JVBERi0xLjINOCAwIG9iag08PCAvTGVuZ3RoIDkgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2Rl ID4+DXN0cmVhbQ1oQ51bbY/cNg7+BfsfhAUO11w3riW/B7gPaZEAAdpcm06RL8EBzoyn68uM vZ3xZLv//khKsuUxNaMNiiabpUg+pKiHsmxJECN/UsgiilP4ab2/+XF1I81vszSqclHIOEpj sdrf/PC2EFVUpmK1vXkZxVKs1uJlJJVYPYrvPra7XVvvxYdIrE7rL83hhVj97+bNyjUoFam7 FnOB+tubGI3FZEkwmhpKXpVRnqJi0PCyjBJ1DjyOYqWBxxXp/1h4X+ov9abZt434pV0feoG/ ars/xU/9/qEZmm7diJ+abmgOr0TGeFNFEuXx5M4B95Idns/QAaJMI1IpKeXi9+ZhaPafm4NQ cRwzNpK0iirlRvisRBZpVJa+PP51091kkjBWBXrJxUuZRjIXh0Z8FN3MnB5X5st5Kay9355n --{смешанные границы}--

    СОВЕТЫ

    Используйте предпочитаемый почтовый клиент (у меня Thunderbird) и отправьте на себе одно сообщение только в виде обычного текста, одно только HTML, одно смешанное и затем каждый из предыдущих, но с одним прикрепленным файлом.

    Когда вы получаете сообщение, просто изучите его источник (Просмотр -> Сообщение источник).

    @Edit: очень хорошо задокументированный пример + пример PHP можно найти здесь

    PHP — Отправка электронной почты

    Отправка электронной почты — Основы, дополнительная информация и полный пример

    Типичное электронное письмо состоит из трех основных компонентов:

    1. Получатель (представленный в виде адреса электронной почты)
    2. Тема
    3. Тело сообщения

    Отправка почты в PHP может быть такой же простой, как вызов встроенной функции почта() . mail() принимает до пяти параметров, но первые три — это все, что требуется для отправки электронной почты (хотя обычно используются четыре параметра, как будет показано ниже). Первые три параметра:

    1. Адрес электронной почты получателя (строка)
    2. Тема письма (строка)
    3. Тело письма (строка) (например, содержание письма)

    Минимальный пример будет похож на следующий код:

    Приведенный выше простой пример хорошо работает в ограниченных обстоятельствах, таких как жесткое кодирование оповещения по электронной почте для внутренней системы. Тем не менее, обычно данные, передаваемые в качестве параметров для mail() , помещаются в переменные, чтобы сделать код чище и проще в управлении (например, динамическое создание электронного письма из отправки формы).

    Кроме того, mail() принимает четвертый параметр, который позволяет вам отправлять дополнительные заголовки электронной почты вместе с вашей электронной почтой. Эти заголовки позволяют вам установить:

    • From имя и адрес электронной почты, которые пользователь увидит
    • Reply-To адрес электронной почты ответ пользователя будет отправлен на
    • дополнительные нестандартные заголовки, такие как X -Mailer , который может сообщить получателю, что это электронное письмо было отправлено через PHP

    Необязательный пятый параметр может использоваться для передачи дополнительных флагов в качестве параметров командной строки программе, настроенной для использования при отправке почты, как определено параметром конфигурации sendmail_path . Например, это можно использовать для установки адреса отправителя конверта при использовании sendmail/postfix с параметром -f sendmail.

    Хотя использование mail() может быть довольно надежным, никоим образом не гарантируется, что электронное письмо будет отправлено, когда mail() называется. Чтобы увидеть, есть ли потенциальная ошибка при отправке электронной почты, вы должны получить возвращаемое значение из mail() . TRUE будет возвращено, если почта была успешно принята для доставки. В противном случае вы получите FALSE .

    ПРИМЕЧАНИЕ : Хотя mail() может вернуть TRUE , не означает, что электронное письмо было отправлено или что электронное письмо будет получено получателем. Это только указывает на то, что почта была успешно доставлена ​​в почтовую систему вашей системы.

    Если вы хотите отправить электронное письмо в формате HTML, вам не нужно делать много дополнительной работы. Вам необходимо:

    1. Добавить заголовок MIME-Version
    2. Добавить заголовок Content-Type
    3. Убедитесь, что содержимое вашей электронной почты соответствует формату HTML

    Вот полный пример использования функции PHP1 mail2907()

    См. также

    Официальная документация

    • mail() (открывает новое окно)
    • PHP mail() конфигурация (открывается в новом окне)

    Связанные вопросы о переполнении стека

    • Почтовая форма PHP не завершает отправку электронной почты (открывается в новом окне)
    • Как убедиться, что электронная почта, которую вы отправляете программно, не помечается автоматически как спам ? (открывается в новом окне)
    • Как использовать SMTP для отправки электронной почты (открывается в новом окне)
    • Настройка конверта из адреса (открывается в новом окне)

    Альтернативные почтовые программы

    • PHPMailer (открывается в новом окне)
    • SwiftMailer (открывается в новом окне)
    • PEAR::Mail (открывается в новом окне)

    Серверы электронной почты

    • Mercury Mail (Windows) (открывается в новом окне)
    900direct/ReetG02 Связанные темы
      3

      3

      3 (открывается в новом окне)

    Это не сильно отличается от отправки простого текстового сообщения электронной почты (открывается в новом окне). Ключевым отличием является то, что тело контента структурировано как HTML-документ, и есть два дополнительных заголовка, которые должны быть включены, чтобы почтовый клиент знал, что электронное письмо должно быть отредактировано как HTML. Их:

    • MIME-версия: 1.0
    • Content-Type: text/html; charset = UTF-8

    Отправка электронной почты с вложением с использованием Mail ()

    .

    , ietf-токен и x-токен . Из этих кодировок, когда заголовок имеет multipart Content-Type, Content-Transfer-Encoding не должно быть любым другим значением, кроме 7bit , 8bit или binary , как указано в RFC 2045, раздел 6.4.

    В нашем примере для составного заголовка выбрана 7-битная кодировка, которая представляет символы US-ASCII, поскольку, как отмечено в разделе 6 RFC 2045, некоторые протоколы поддерживают только эту кодировку. Затем данные в пределах границ можно кодировать по частям (RFC 2046, раздел 5.1). Этот пример делает именно это. Первая часть, содержащая текстовое/простое сообщение, определена как 8-битная, поскольку может потребоваться поддержка дополнительных символов. В этом случае Latin1 (iso-8859-1) используется набор символов. Вторая часть — это вложение, поэтому оно определяется как приложение/поток октетов в кодировке base64. Поскольку base64 преобразует произвольные данные в 7-битный диапазон, их можно отправлять через ограниченные транспорты (RFC 2045, раздел 6.2).

    Отправка простого текста электронной почты с помощью PHPMailer

    Обычная текстовая электронная почта

    Добавление дополнительных получателей, получателей копии, получателей скрытой копии

    Отправка электронной почты с вложением с помощью PHPMailer

    Sending Plain Text Email Using Sendgrid

    Basic Text Email

    Adding addtional recipients, CC recipients, BCC recipients

    Sending Email With An Attachment Using Sendgrid

    Parameters
    Parameter Details
    строка $to Адрес электронной почты получателя
    строка $subject The subject line
    string $message The body of the email
    string $additional_headers Optional: headers to add to the email
    string $additional_parameters Необязательно: аргументы для передачи настроенному приложению отправки почты в командной строке.
    Что я должен делать?

  • Убедитесь, что у вас включены отчеты об ошибках, чтобы увидеть все ошибки.
  • Если у вас есть доступ к файлам журнала ошибок PHP, проверьте их.
  • Правильно ли настроена команда `mail()` на вашем сервере (http://uk3.php.net/manual/en/mail.configuration.php)? (Если вы находитесь на виртуальном хостинге, вы ничего не можете здесь изменить.)
  • Если электронная почта просто исчезает, создайте учетную запись электронной почты в службе бесплатной почты, в которой есть папка для спама (или используйте учетную запись электронной почты, которая вообще не фильтрует спам). Таким образом, вы можете видеть, не рассылается ли электронное письмо или, возможно, рассылается, но фильтруется как спам.
  • Проверяли ли вы адрес «от:», который вы использовали, на предмет возможного возврата писем отправителю? Вы также можете настроить отдельный [адрес возврата] (http://stackoverflow.com/questions/5303541/set-email-headers-so-bounced-emails-go-to-a-specific-address) для сообщений об ошибках.
  • Электронное письмо, которое я отправляю, фильтруется как спам. Что я должен делать?

  • Принадлежит ли адрес отправителя («От») домену, работающему на сервере, с которого вы отправляете электронную почту? Если нет, измените это. Никогда не используйте адреса отправителей, такие как «[email protected]». Используйте `reply-to`, если вам нужно, чтобы ответы пришли на другой адрес.
  • Ваш сервер в черном списке? Это возможность, когда вы находитесь на виртуальном хостинге, когда соседи ведут себя плохо. У большинства поставщиков черных списков, таких как [Spamhaus] (https://www.spamhaus.org/lookup/), есть инструменты, которые позволяют вам искать IP-адрес вашего сервера. Существуют также сторонние инструменты, такие как [MX Toolbox.](http://mxtoolbox.com/blacklists.aspx)
  • Для некоторых установок PHP требуется установка [пятого параметра](http://stackoverflow.com/questions/1376152/what-does-the-f-flag-mean-in-the-fifth-parameter-in-the-php- mail-функция) в mail(), чтобы добавить адрес отправителя.
    Оставить комментарий

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    © 2019 Штирлиц Сеть печатных салонов в Перми

    Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.