【问题标题】:How do I put an if statement inside the body of a PHPMailer code?如何在 PHPMailer 代码的主体中放置 if 语句?
【发布时间】:2025-12-17 01:50:02
【问题描述】:

我正在尝试将 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
}

";

我按照 Artem Medianyk 所说的方式尝试了它并且它起作用了,但是当我以这种方式放置其他变量时,它不起作用。

$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 phpmailer


    【解决方案1】:

    请再试一次:

    $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;
    
    

    【讨论】:

    • 成功了!!感谢您的帮助.. 我可以通过这种方式进行任何样式编辑,也许只是在回复之间跳过一行?因为他们都排在同一条线上,而且很紧
    • 是的,您可以使用 $body.= "

      电话:"。 $result_SRV_ 。 "

      ";
    • 嘿Artem,我问了另一个与这个相关的问题,你能看看你是否能帮忙? *.com/questions/65457345/…
    【解决方案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;
    
    

    【讨论】:

    • 它与一个变量一起工作得很好,但是当我这样放置其他变量时,它就不起作用了。我的想法是检查已填写的答案,然后以最佳方式通过电子邮件发送。我该怎么做才能做到这一点?
    • @VitorFreitas 但您的问题代码仅包含一个变量。因此,根据您提供的详细信息,Artem 的回答是正确的。
    • 请让我知道您想适应的所有可能情况。