Как поместить оператор if в тело кода PHPMailer?

Я пытаюсь поместить оператор if внутри тела вместе с html, но он не работает. Я использую PHPMailer, что-то не так с кодом?

<?php

require  'email/PHPMailerAutoload.php';

extract($_POST);

$mail = new PHPMailer;


$mail ->isHTML(true);
$mail ->CharSet = 'UTF-8';

$mail ->Body . = "

if ($result != null){
    echo "Name: " $result
}

";

Я попробовал так, как сказал Артем Медяник, и это сработало, но когда я поставил другие переменные таким образом, это не сработало.

$body = '';

if ($result_SRV_AA_A10_name_go != null) {
  $body = "Name: " . $result_SRV_AA_A10_name_go;
}

if ($result_SRV_AA_A10_email_go != null) {
  $body = "E-mail: " . $result_SRV_AA_A10_email_go;
}

if ($result_SRV_AA_A10_tel_go != null) {
  $body = "Telefone: " . $result_SRV_AA_A10_tel_go;
}

if ($result_SRV_AA_B9_name_go != null) {
  $body = "Name: " . $result_SRV_AA_B9_name_go;
}

if ($result_SRV_AA_B9_email_go != null) {
  $body = "E-mail: " . $result_SRV_AA_B9_email_go;
}

if ($result_SRV_AA_B9_tel_go != null) {
  $body = "Telefone: " . $result_SRV_AA_B9_tel_go;
}

$body = json_encode($body);

$mail ->Body .= $body;

Моя идея состоит в том, чтобы проверить ответы, которые были заполнены, а затем отправить их наилучшим образом по электронной почте. что я мог сделать, чтобы достичь этого?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
105
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Пожалуйста, попробуйте это:

<?php

require  'email/PHPMailerAutoload.php';

extract($_POST);

$result = {something};

$mail = new PHPMailer;


$mail ->isHTML(true);
$mail ->CharSet = 'UTF-8';

$body = "";

if ($result != null) {
  $body = "Name: " . $result;
}

$body = json_encode($body);

$mail ->Body .= $body;

он работал хорошо с одной переменной, но когда я поставил другие переменные таким образом, это не сработало. Моя идея состоит в том, чтобы проверить ответы, которые были заполнены, а затем отправить их наилучшим образом по электронной почте. что я мог сделать, чтобы достичь этого?

Vitor Freitas 26.12.2020 03:14

@VitorFreitas, но ваш код вопроса включает только одну переменную. Итак, ответ Артема правильный, исходя из предоставленных вами деталей.

GetSet 26.12.2020 03:15

Пожалуйста, дайте мне знать все возможные ситуации, которые вы хотите исправить.

user14860400 26.12.2020 03:18
Ответ принят как подходящий

Пожалуйста, попробуйте еще раз:

$body = '';

if ($result_SRV_AA_A10_name_go != null) {
  $body .= "Name: " . $result_SRV_AA_A10_name_go;
}

if ($result_SRV_AA_A10_email_go != null) {
  $body .= "E-mail: " . $result_SRV_AA_A10_email_go;
}

if ($result_SRV_AA_A10_tel_go != null) {
  $body .= "Telefone: " . $result_SRV_AA_A10_tel_go;
}

if ($result_SRV_AA_B9_name_go != null) {
  $body .= "Name: " . $result_SRV_AA_B9_name_go;
}

if ($result_SRV_AA_B9_email_go != null) {
  $body .= "E-mail: " . $result_SRV_AA_B9_email_go;
}

if ($result_SRV_AA_B9_tel_go != null) {
  $body .= "Telefone: " . $result_SRV_AA_B9_tel_go;
}

$mail ->Body .= $body;

Это сработало!! Я ценю вашу помощь .. Могу ли я сделать какое-либо редактирование стиля таким образом, может быть, просто пропустить строку между ответами? Потому что все они пришли в одну и ту же очередь

Vitor Freitas 26.12.2020 03:33

Да, вы можете использовать $body.= "<p>Телефон: ". $результат_SRV_ . "</p>";

user14860400 26.12.2020 03:35

Привет, Артем, я задал еще один вопрос, связанный с этим, ты можешь взглянуть и посмотреть, можешь ли ты чем-нибудь помочь? stackoverflow.com/questions/65457345/…

Vitor Freitas 26.12.2020 19:09

Другие вопросы по теме