Php html mailing script

Отправка почты средствами PHP

Работая над проектом, мне пришлось создать специфичную «анкету соискателя» в котором надо была отправлять всю анкету на указные за ране e-mail адрес, и я сразу же вспомнил про PHP функцию mail().

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]]) 
  • E-mail получателя
  • Заголовок письма
  • Текст письма
  • Дополнительные заголовки письма
  • Дополнительные параметры командной строки
  • true, если письмо было принято к доставке
  • false, в противном случае.
Простейший пример
Перейдем к более сложному примеру
Текст письма


1-ая строчка
2-ая строчка
'; $headers = "Content-type: text/html; charset=windows-1251 \r\n"; $headers . ; $headers .= "Reply-To: reply-to@example.com\r\n"; mail($to, $subject, $message, $headers); ?>

В начале мы определяем кому адресовано письмо, за это отвечает переменная &to, если же получателей несколько человек, то записываем через запятую адреса эл. почты.

Переменные $subject и $message, не буду описывать, это и так понятно.

  • В первой строчке ми определяем ты отправляемого письма-HTML и кодировку windows-1251.
  • В 2-ом мы указываем от кого пришло письмо.
  • В 3-ем указываем e-mail адрес, для ответа на письмо.
А теперь самое интересное отправка письма c вложением (attachment)
$subject = "тема письма"; $message ="Текст сообщения"; // текст сообщения, здесь вы можете вставлять таблицы, рисунки, заголовки, оформление цветом и т.п. $filename = "file.doc"; // название файла $filepath = "files/file.doc"; // месторасположение файла //исьмо с вложением состоит из нескольких частей, которые разделяются разделителем $boundary = "--".md5(uniqid(time())); // генерируем разделитель $mailheaders = "MIME-Version: 1.0;\r\n"; $mailheaders .="Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n"; // разделитель указывается в заголовке в параметре boundary $mailheaders . ; $mailheaders .= "Reply-To: $user_email\r\n"; $multipart = "--$boundary\r\n"; $multipart .= "Content-Type: text/html; charset=windows-1251\r\n"; $multipart .= "Content-Transfer-Encoding: base64\r\n"; $multipart .= \r\n; $multipart .= chunk_split(base64_encode(iconv("utf8", "windows-1251", $message))); // первая часть само сообщение // Закачиваем файл $fp = fopen($filepath,"r"); if (!$fp) < print "Не удается открыть файл22"; exit(); >$file = fread($fp, filesize($filepath)); fclose($fp); // чтение файла $message_part = "\r\n--$boundary\r\n"; $message_part .= "Content-Type: application/octet-stream; name=\"$filename\"\r\n"; $message_part .= "Content-Transfer-Encoding: base64\r\n"; $message_part .= "Content-Disposition: attachment; filename=\"$filename\"\r\n"; $message_part .= \r\n; $message_part .= chunk_split(base64_encode($file)); $message_part .= "\r\n--$boundary--\r\n"; // второй частью прикрепляем файл, можно прикрепить два и более файла $multipart .= $message_part; mail($to,$subject,$multipart,$mailheaders); // отправляем письмо //удаляем файлы через 60 сек. if (time_nanosleep(5, 0)) < unlink($filepath); >// удаление файла 

Источник

Читайте также:  Hidden code in php

Create a PHP Email Script and Form

Monty Shokeen

Monty Shokeen Last updated Jan 23, 2019

Forms on websites can be used for a lot of purposes besides being a place to contact the website administrators. In previous posts, I covered how to create a fully functional contact form in PHP and how to build your own Captcha and integrate it in your contact forms.

In this tutorial, our focus will be on creating forms in PHP that are meant to serve other purposes like gathering information about a job applicant, booking hotel rooms, or getting information about marriage events from clients.

Choosing the Right Fields for Your Forms

In the contact form tutorial, we learned that different organizations and websites will most probably want to get specific information from people contacting them in order to assist them in the best possible way. For instance, a contact form on a school website might ask parents for information about their kids enrolled in that school. Similarly, the contact form on a shopping website might gather information about the last product people bought in order to serve them better.

If contact forms can vary so much between different websites and organizations, it is reasonable to assume that forms which are supposed to serve completely different purposes have very different fields. For instance, you will most probably ask people booking a hotel room if they will be accompanied by any other adults or children. Asking the same thing of a job applicant would make no sense.

This is an important thing to remember when you follow this tutorial. The basic concept of creating a form, gathering all the information and sending it somewhere by email will stay the same, but the code will almost certainly need changes to work for your case. You might want to add different input fields to your forms and assign different names to those fields. This will then affect the PHP code in the back end. If you make changes in the forms, make sure you update the PHP code as well.

You can take a look at this list of 20 Best PHP email forms to get some inspiration about the layout of form elements or different input fields that you might want to add to your forms.

Источник

Отправка писем на php. Сборник рецептов

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


Если вы это читаете значит все ок

Почтовый робот "; // текст сообщения, здесь вы можете вставлять таблицы, рисунки, заголовки, оформление цветом и т.п. $mailheaders = "Content-type:text/html;charset=windows-1251rn"; // формат письма html $mailheaders .= "From: SiteRobot rn"; $mailheaders .= "Reply-To: noreply@siterobot.rurn"; // емайл отправителя и емайл для ответа mail($to, $subject, $message, $mailheaders); // отправляем письмо ?>

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

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

rn"; $mailheaders .= "Reply-To: noreply@siterobot.rurn"; $multipart = "--$boundaryn"; $multipart .= "Content-Type: text/plain; charset=windows-1251nn"; $multipart .= "$messagenn"; // первая часть само сообщение $fp = fopen($filepath,"r"); if (!$fp) < print "Файл не может быть прочитан"; exit(); >$file = fread($fp, filesize($filepath)); fclose($fp); // чтение файла $message_part = "--$boundaryn"; $message_part .= "Content-Type: application/octet-stream; name = "".$filename.""n"; $message_part .= "Content-Transfer-Encoding: base64n"; $message_part .= "Content-Disposition: attachment; filename = "".$filename.""nn"; $message_part .= chunk_split(base64_encode($file))."n"; // второй частью прикрепляем файл, можно прикрепить два и более файла $multipart .= $message_part; mail($to,$subject,$multipart,$mailheaders); // отправляем письмо ?>

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

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

rn"; $mailheaders .= "Reply-To: noreply@siterobot.rurn"; // почтовые заголовки $mailheaders .= "Bcc: email1@mail.rurn"; $mailheaders .= "Bcc: email2@mail.rurn"; $mailheaders .= "Bcc: email3@mail.rurn"; // заголовков Bcc может быть неограниченное количество mail($to, $subject, $message, $mailheaders); // отправляем письмо ?>

Подборка курсов по PHP

4.4 GeekBrains еще 1 курс

4.4 Skillbox еще 3 курса

4.2 Оtus

4.4 HTML Academy

4.5 Hexlet

4.4 Нетология

Комментарии

Всем привет. Помогите разобраться. Я новичок в HTML — сильно не пинайте. Скачал LadingPage шаблон на html и переделал под себя, а вот проблема в том что не отправляются письма как положено через формы. На сайте есть несколько форма. 1) Заказать звонок и 2) Заказать воду. Во 2 форме есть подпункты город,время и т.д. Но при оправке на почту приходить только текст «Заказ на доставку воды», а нужно что бы и телефон и все остальное приходило. Создал файл mail.php и прописал вот такой код
$to = ‘МОЯ ПОЧТА’;
$from = ’email@yandex.ru’;
$subject = ‘Заказ воды на сайте Water24Hours’;
$subject = ‘=?utf-8?b?’. base64_encode($subject ) .’?=’;
$headers = ‘Content-type: text/plain; charset=»utf-8″‘;
$headers .= «From: «. $from .» rn»;
$message = ‘Заказ на доставку воды’;
$headers .= «Date: «. date(‘D, d M Y h:i:s O’) .»rn»;
mail($to, $subject, $message, $headers, ‘-f’. $from );
?>
И в файле script.js вот такой код
$(function() $(‘#square’).keyup(function() var square = $(this).val();
$(‘#price’).val(square*1100)
>);
$(‘#price’).keyup(function() var price = $(this).val();
$(‘#square’).val((price/1100).toFixed(2))
>);

$(‘.ask-blocks .item h4’).click(function() var thisH4 = $(this),
thisSpan = $(‘div’, $(this).parent()),
outherH4 = $(‘.ask-blocks .item h4’).not(thisH4),
outherSpan = $(‘.ask-blocks .item div’).not(thisSpan);
outherH4.removeClass(‘active’);
outherSpan.hide().removeClass(‘active’);
thisH4.toggleClass(‘active’);
thisSpan.fadeToggle().toggleClass(‘active’);
>);
ymaps.ready(init);
var myMap,
myPlacemark;

function init() if( ($(window).width() <= 767) ) myMap = new ymaps.Map("map", center: [55.75399400, 37.62209300],
zoom: 8
>);
> else myMap = new ymaps.Map(«map», center: [55.75399400, 37.62209300],
zoom: 8
>);
>

myPlacemark = new ymaps.Placemark([55.75399400, 37.62209300], hintContent: ‘Алматы’,
balloonContent: ‘г. Алматы, пр. Достык, д. 291/3’
>);
myMap.geoObjects.add(myPlacemark);
>
$(‘.up’).click(function(e) e.preventDefault();
$(‘html,body’).animate( scrollTop: 0
>, 1000);
>);
$(«input.tel»).click(function() $(this).val(‘+7’);
>);
$(window).scroll(function() var pos = 86;
if( ($(window).width() = 768) ) pos = 150;
>
if( ($(window).width() = 576) ) pos = 150;
>
if($(window).width() <= 575) pos = 290;
>

if($(this).scrollTop() >= pos) $(‘nav’).addClass(‘stickytop’);
>
else $(‘nav’).removeClass(‘stickytop’);
>
>);
$(‘.smoothScroll’).click(function(event) event.preventDefault();
var href=$(this).attr(‘href’);
var target=$(href);
var top=target.offset().top;
$(‘html,body’).animate( scrollTop: top
>, 1000);
>);

$(‘.modal’).on(‘hidden.bs.modal’, function (e) $(‘input:not(.type)’, $(this)).val(»);
>);
$(‘form’).submit(function(e) e.preventDefault();
var form_data = ‘name’:$(«.name», $(this)).val(),
‘tel’:$(«.tel», $(this)).val(),
‘price’:$(«#price», $(this)).val(),
‘square’:$(«#square», $(this)).val(),
‘type’:$(«.type», $(this)).val()
>;
$.ajax( type: «POST»,
url: «mail.php»,
data: form_data,
success: function() $(‘.modal’).modal(‘hide’);
setTimeout(function() $(‘.success’).fadeToggle();
>, 1000);
setTimeout(function() $(‘.success’).fadeToggle();
>, 2500);
>,
error: function() alert(«Произошла какая то ошибка!»);
>
>);
>);
new WOW().init();
>);
Подскажите что сделал не правильно. Всем спасибо!

Источник

Оцените статью