phpmailer menambahkan lebih banyak konten ke badan email

Saya baru mengenal phpmailer.. saya telah membuat beberapa kemajuan dengan membuat formulir sederhana yang memungkinkan pengguna mengirim email ke kotak masuk kami:

<form id="contact-form" class="contact-form" method="post" action="send-mail.php">          
    <input type="text" name="name" id="name" placeholder="Name" tabindex="1">
    <input type="text" name="subject" id="trade" placeholder="Your Trade" tabindex="3">
    <input type="text" name="email" id="email" placeholder="Your Email" tabindex="2">
    <input type="text" name="number" id="number" placeholder="Contact Number" tabindex="4">
    <textarea id="message" rows="8" name="message" placeholder="Message" tabindex="5"></textarea>
    <div class="grid-col one-whole">
            <button type="submit">Send Your Message</button>
    </div>
</form>

.php:

<?php
require('PHPFiles/PHPMailerAutoload.php');
require('PHPFiles/class.smtp.php');
require('PHPFiles/class.phpmailer.php');

$mail = new PHPMailer;

//$mail->SMTPDebug = 3;    
$mail->IsSMTP();
$mail->Host = '74.208.5.2';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';           
$mail->Password = '*******';                          
$mail->SMTPSecure = 'tls';
$mail->Port = 25; connect to

$mail->From = isset($_POST["email"]) ? $_POST["email"] : "";
$mail->FromName = isset($_POST["email"]) ? $_POST["email"] : "";
$mail->addAddress('[email protected]'); 
$mail->Subject = isset($_POST["subject"]) ? $_POST["subject"] : "";
$mail->Body = str_replace("\n",'<br>', $_POST['message']);

$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

$mail->isHTML(true); 

if(!$mail->send()) {
    echo 'Message could not be sent.';
    echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
    echo 'Message has been sent';
}

Saat ini, Badan email berisi isi kolom textare. Bagaimana badan bisa memuat ini, tetapi kemudian juga jeda baris, lalu, isi bidang angka?


person user3731438    schedule 24.07.2015    source sumber
comment
itu hanya sebuah string. $mail->body = 'foo'; $mail->body .= 'bar' memberi Anda foobar sebagai tubuh.   -  person Marc B    schedule 24.07.2015
comment
@MarcB - $mail kedua seharusnya memiliki file . di depan = ??   -  person user3731438    schedule 24.07.2015
comment
kamu memiliki kesalahan di str_replace Anda, seharusnya str_replace('\n','‹br›', ...,   -  person fsn    schedule 24.07.2015
comment
@MarcB - badannya juga harus huruf besar B... tapi selain itu berfungsi   -  person user3731438    schedule 24.07.2015
comment
@fsn - bisakah Anda menjelaskan apa kesalahannya??   -  person user3731438    schedule 24.07.2015
comment
Anda harus menggunakan '\n' agar str_replace Anda berfungsi atau menggunakan \\n dan menghindarinya, lakukan juga seperti ‹br /›   -  person fsn    schedule 24.07.2015


Jawaban (2)


Anda mungkin ingin mencoba ini. Buatlah variabel terpisah untuk semua data yang perlu ada di badan pesan.

$message = "Name :- " . $_POST['name'] . "<br>" . " Number :- " . $_POST['number'];
$mail->Body = $message;
person Akshay    schedule 24.07.2015
comment
dengan yang di atas saya mendapatkan kesalahan Parse: kesalahan sintaksis, '' yang tidak terduga, pengidentifikasi yang diharapkan (T_STRING) atau variabel (T_VARIABLE) atau angka (T_NUM_STRING) - person user3731438; 24.07.2015
comment
ini tidak berhasil, harap uji kode Anda sebelum mengirimkan - person user3731438; 24.07.2015

jadi melakukannya seperti:

$mail->Body = str_replace('\n','<br />', $_POST['message']);

or:

$mail->Body = str_replace("\\n","<br />", $_POST["message"]);

harus memperbaiki masalah string yang mendapatkan "jeda baris".

Omong-omong. itu selalu baik untuk:

var_dump($data);
die();

untuk melihat apa yang Anda dapatkan di setiap langkah kode

person fsn    schedule 24.07.2015