【问题标题】:Phpmailer - add posted value in email bodyPhpmailer - 在电子邮件正文中添加发布值
【发布时间】:2016-09-02 10:22:07
【问题描述】:

我的联系表单有点问题。 我正在使用引导程序和 phpmailer。 问题是电子邮件正文不包含联系表单中的变量。

我收到的电子邮件是“Wiadomość od: Firma: E-mail: Telefon: Treść wiadomości:

代码如下:

<?php



require '../../PHPMailer-master/PHPMailerAutoload.php';
// require '../../PHPMailer-master/class.smtp.php';

$mail = new PHPMailer(true);
$mail->CharSet = 'UTF-8';
$mail->SMTPDebug = false;                        
$mail->isSMTP();                                      
$mail->Host = 'xxx.com.pl';  
$mail->SMTPAuth = true;                               
$mail->Username = 'xxx@.com.pl';                
$mail->Password = 'xxx';                         
$mail->Port = 587;


$mail->setFrom('xxx@.com.pl', 'Centru');
$mail->addAddress('xxx@gmail.com', 'Odbiorca');    
$mail->Subject = "Wiadomość ze strony internetowej";
$mail->isHTML(true);   


// $name = $_POST['InputName'];
// $company = $_POST['InputFirma'];
// $email = $_POST['InputEmail'];
// $phone = $_POST['InputPhone'];
// $message = $_POST['InputSubject']; 


$mail->Body = "Wiadomość od: " .$_POST['InputName']."\nFirma: " .$_POST['InputFirma']. "\nE-mail: " .$_POST['InputEmail']. "\nTelefon: " .$phone = $_POST['InputPhone']. "\nTreść wiadomości: " .$_POST['InputSubject'];

if(!$mail->send()) {
    echo 'Wiadomość nie mogła zostać wysłana';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Wiadomość została wysłana';
}

和 HTML

<form class="padding-top-40" role="form" id="contactForm" class="contact-form" data-toggle="validator" class="shake">
                        <div class="form-group">
                            <label for="InputName">Imię i nazwisko</label>
                            <input type="text" class="form-control" id="InputName" name="fullname"  placeholder="Imię i nazwisko" required data-error="Proszę wpisać swoje imię i nazwisko">
                            <div class="help-block with-errors"></div>
                        </div>
                        <div class="form-group">
                            <label for="InputFirma">Firma</label>
                            <input type="text" class="form-control" id="InputFirma" name="subject" name="comments"  placeholder="Firma" required data-error="Proszę wpisać nazwę firmy">
                            <div class="help-block with-errors"></div>
                        </div>
                        <div class="form-group">
                            <label for="InputEmail">E-mail</label>
                            <input type="email" class="form-control" id="InputEmail" name="emailid"  placeholder="E-mail" required data-error="Proszę wpisać swój email">
                            <div class="help-block with-errors"></div>
                        </div>
                        <div class="form-group">
                            <label for="InputPhone">Telefon kontaktowy</label>
                            <input type="number" class="form-control" name="phone" id="InputPhone" placeholder="Numer telefonu" required data-error="Proszę wprowadzić numer telefonu">
                            <div class="help-block with-errors"></div>
                        </div>
                        <div class="form-group">
                            <label for="InputSubject">Temat</label>
                            <textarea type="text" class="form-control" name="subject"  id="InputSubject" placeholder="Treść wiadomości" rows="4" required data-error="Proszę wpisać treść wiadomości"></textarea>
                            <div class="help-block with-errors"></div>
                        </div>
                        <div class="padding-top-20">
                            <button type="submit" value="send" class="btn btn-default" id="submit" >Wyślij</button>
                            <div id="msgSubmit" class="h3 text-center"></div>
                        </div>
                    </form>

提前感谢您的帮助!

【问题讨论】:

  • 添加method="post"到你的
    ,我猜?
  • 不,它不会改变任何东西:/
  • 你访问了错误的元素,var_dump($_POST) 你会看到。 Imię i nazwisko 有 name="fullname" 所以它将是 $_POST['fullname'] 而不是 $_POST['InputName'],InputName 是一个 ID。 $_POST 数组的键是 NAME 属性。编辑:当然还有@ChrisG提到的method="post"。
  • 好的,正在工作,谢谢。但是我也会向您提出问题:“好吧,它有点工作,但是它只捕获'电话'名称,这很奇怪。哦,“\n”似乎也不起作用(我认为它打破了正确的界限?) "
  • 您可以将Content-Type: text/plain 添加到电子邮件的标题中,\n 应该可以工作。或使用Content-Type: text/html&lt;br&gt;

标签: php twitter-bootstrap email phpmailer


【解决方案1】:

使用名称代替 id 并检查

   $name=$this->input->post('fullname');


   $name=$_POST['fullname'];

【讨论】:

  • 嗯,它有点工作,但它只捕获“电话”名称,这很奇怪。哦,“\n”似乎也不起作用(我认为它打破了对吧?)
  • 使用
    而不是 \n
  • 如果您不需要,也可以删除 id 并为每个元素只提供一个名称....您有两个名称字段用于firma
  • 做到了。现在我得到“未定义”的字符串。
  • 所有值?
【解决方案2】:

好的,伙计们,我找到了解决问题的方法。

我制作了一个数组而不是普通的“body”脚本。 希望它会对某人有所帮助。

$mail->Body = join('', array(
"Wiadomość od: ",
$_POST['name'],
"<br/>",
"Firma: ",
$_POST['company'],
"<br/>",
"E-mail: ",
$_POST['email'],
"<br/>",
"Telefon:",
$_POST['phone'],
"<br/>",
"Treść wiadomości: ",
"<br/>",
$_POST['content']
));

【讨论】:

    猜你喜欢
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2015-11-07
    相关资源
    最近更新 更多