Могу ли я сослаться на идентификатор или класс DIV в файле PHP со страницы HTML?

Я пытаюсь добавить свою собственную контактную форму в проект веб-сайта Blogger. У меня есть HTML-код контактной формы в шаблоне Blogger и собственный PHP-файл, работающий на сервере, ссылку на который я указываю на действие тега формы. Он отправляет электронную почту, и обе платформы, похоже, хорошо общаются. Среди многих улучшений, которые я сейчас делаю. Моя главная задача — научиться отправлять электронные письма в формате HTML. Каждый раз, когда пользователь отправляет сообщение, я хотел бы получить его в формате HTML. Приведенный ниже CSS предназначен для тестирования этой функции, которую я позже разработаю.

ОБНОВИТЬ:

    ...
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

    if ($_POST['Submit']) {
       if (empty($_POST['Phone'])) {
        $content = "<html>
              <head></head>
              <body>
                <div class='boldtext'>From:</div>
                $name
                <br/>
                <div class='boldtext'>E-mail:</div>
                $email
                <br/><br/>
                $message
               <style>
                 .boldtext {
                    font-weight: bold;
              }
              </style>
              </body>
              </html>";
if (mail ($to, $subject, $content, $from, $headers)) {
      echo '<div class="boldtext">Your message has been sent. Thank you!</div>';
   } else {
      echo '<div class="messageerror">An error has occurred. Try again later.</div>';
   }
}

Однако почтовый клиент получает электронное письмо в виде обычного текста, а не в формате HTML.


person Lekstadt    schedule 23.04.2016    source источник
comment
Если у вас есть доступ к PHP-файлу, который создает форму, тогда не должно возникнуть проблем с добавлением содержимого.   -  person RST    schedule 23.04.2016
comment
У меня есть к нему доступ, я его сделал. Я опубликую код. Он уже отправляет сообщения, хотя валидации и лимиты еще не полностью работают.   -  person Lekstadt    schedule 23.04.2016
comment
Я не понимаю, в чем проблема, когда у вас есть полный доступ. Что вы хотите добавить?   -  person RST    schedule 23.04.2016
comment
вы можете напрямую обернуть приведенный выше код в теги <html>. (например, <html><head><title>Untitled</title></head><body><?php Your code Here ?></body></html>. См. здесь и здесь   -  person fusion3k    schedule 23.04.2016
comment
Я хотел бы иметь возможность отправлять электронные письма в формате html. Я знаю, что могу сделать это с помощью заголовков, но я новичок в PHP и не знаю, как это сделать. Затем я хотел бы, чтобы эхо отображалось непосредственно в форме, заменяя заполнитель ввода. Но я почти уверен, что это сложнее, чем это, поскольку мне нужен ajax.   -  person Lekstadt    schedule 23.04.2016
comment
Спасибо, fusion3k, и будет ли он по-прежнему работать как действие формы PHP, если я оберну его в теги html?   -  person Lekstadt    schedule 23.04.2016
comment
Да. Проверьте вывод, чтобы убедиться в правильности HTML. Я предлагаю вам потратить некоторое время на чтение основных руководств, чтобы лучше понять поведение php.   -  person fusion3k    schedule 23.04.2016
comment
Да, наверное, надо, просто не было времени и не нашел нужных. Я нашел это, и его подход на самом деле не похож: tutorialrepublic.com/php -tutorial/php-send-email.php   -  person Lekstadt    schedule 23.04.2016
comment
Имейте в виду, что не все почтовые программы действуют одинаково. Взгляните на этот обзор campaignmonitor.com/css.   -  person RST    schedule 23.04.2016
comment
В вашем текущем примере кода отсутствуют закрывающие теги для body и html и закрывающий "; для строки и определения $content.   -  person RST    schedule 24.04.2016
comment
Спасибо, извините, но это было для вставки копирования, я попробовал это с закрывающими тегами, и электронное письмо не распознается как формат HTML, оно просто передается как обычный текст. В любом случае, ваш ответ хорош, и я многое изменил в коде, и для этого мне придется открыть новый вопрос, поэтому я выбираю ваш ответ как правильный, потому что это так. Большое спасибо за твою помощь!   -  person Lekstadt    schedule 24.04.2016


Ответы (1)


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

Что-то вроде:

$content =
        "<html>
          <head></head>
          <body>
            <div class='title'>My Title</div>
            ...
            <div class='end'>Best Regards</div>
            <style>
             .title {
             color : blue;
             }

             .end {
               color : green;
             }
            </style>
          </body>
        </html>";

должно работать нормально.

person RST    schedule 23.04.2016
comment
Куда мне вставить этот код? Я пытаюсь внести некоторые изменения, например выделить некоторые разделы переменной $content, такие как From: и т. д., жирным шрифтом, прежде чем пытаться создать шаблон электронной почты. Как я мог ссылаться на эти переменные разделы? - person Lekstadt; 23.04.2016
comment
если вы хотите позаботиться о вещах с помощью CSS, вам придется добавить классы в разделы, например, <div class='myclass'> при заполнении переменной $content. - person RST; 23.04.2016
comment
Имейте в виду, что когда люди настроили свою программу электронной почты на отображение всей электронной почты в виде обычного текста, ни один из ваших стилей не будет отображаться. - person RST; 23.04.2016
comment
Вы мне не поверите, я так много часов не спал, что полностью пропустил начало вашего кода... Кстати, почему заголовок вместо заголовка? Я что-то упускаю? - person Lekstadt; 23.04.2016
comment
Я фактически отредактировал код, чтобы он лучше соответствовал вашему сценарию. И... я ошибся, опечатка, извините. - person RST; 23.04.2016
comment
Большое спасибо. Я обновил вопрос. К сожалению, проблема не зарезервирована для $content. Что-то не так, когда дело доходит до формата HTML для полученного мной электронного письма, и это не может быть поставщик услуг, поскольку я получаю множество информационных бюллетеней, читающих HTML-контент. Может быть, я ошибаюсь, но я думаю, что он активен. Outlook поддерживает тег стиля в заголовке или теле. campaignmonitor.com/css - person Lekstadt; 24.04.2016