Hướng dẫn new line in php mail body - dòng mới trong nội dung thư php

Tôi không thể thêm một bình luận vào câu trả lời của Mohammad Saqib, nhưng tôi muốn nói rằng bạn không nên sử dụng
làm thay thế cho \r\n vì điều này có thể khiến email bị bắt bởi các bộ lọc thư rác 'dòng quá dài'. Các dòng mới rất quan trọng để giữ cho email nhiều người hơn và cho phép giao hàng thành công!

Phương pháp tôi đề xuất là:

$output[] = "line 1";
$output[] = "line 2";
$EmailBody = join["\r\n",$output];

Ngoài ra, bạn phải đảm bảo rằng các tiêu đề 'vệ sinh' để tránh tiêm tiêu đề từ đầu vào của người dùng, đây là một chức năng chắc chắn gấp đôi để ngừng tiêm:

function sanitize[&$data]{
   return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}


$headers = 'From: '.sanitize[$email];

Nếu bạn muốn thẻ HTML hiển thị trong email, hãy thay đổi loại bằng tiêu đề:

$headers = 'Content-type: text/html;\r\nFrom: '.sanitize[$email];

Nếu bạn đã hiển thị HTML, bạn nên làm sạch đầu vào của người dùng để tránh bất cứ điều gì bất ngờ ... tức là tiêm HTML. Sử dụng chức năng này bất cứ nơi nào bạn hiển thị đầu vào của người dùng trong HTML:

function htmlclean[$str]{
    return htmlentities[$str, ENT_QUOTES];
}

ví dụ. $ body = "Tên thương hiệu:". htmlclean [$ brandname];

Làm thế nào để bạn chèn một dòng phá vỡ trong email văn bản đơn giản?

function example_filter_auto_update_email[$email] {
    $email['to'] = array['', ''];
    $email['subject'] = 'Auto Update';
    $email['body'] = 'Hello,%0D%0A'
      . 'Lorem ipsum.%0D%0A'
      . 'Many thanks,%0D%0A'
      . 'WordPress';

    return $email;
}

add_filter['auto_core_update_email', 'example_filter_auto_update_email', 1];

Bạn phải sử dụng dấu ngoặc kép và bạn sử dụng \ r \ n để tạo một dòng mới.

Tôi đang sử dụng móc Auto_Core_Update_Email để sửa đổi email cập nhật tự động được gửi bởi WordPress. Tuy nhiên, tôi không thể tìm ra cách thêm các lỗi dòng vào thân email. Đây là mã của tôi:

Tôi cũng đã thử sử dụng:

function sanitize[&$data]{
   return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}


$headers = 'From: '.sanitize[$email];
0, \r\n, cũng như
function sanitize[&$data]{
   return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}


$headers = 'From: '.sanitize[$email];
2, đã thấy ở trên. Tuy nhiên, trong mỗi trường hợp, chuỗi chỉ được in trong ứng dụng email của tôi như thế này:

Xin chào%0d%0Alorem Ipsum%0d%0Amany Cảm ơn%0d%0AwordPress

Chủ đề: PHP / mysqlprev | Tiếp theoPrev|Next

Trả lời: Sử dụng các ký tự mới '
function sanitize[&$data]{
   return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}


$headers = 'From: '.sanitize[$email];
3' hoặc '\r\n'

Bạn có thể sử dụng các ký tự Php Newline

function sanitize[&$data]{
   return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}


$headers = 'From: '.sanitize[$email];
3 hoặc \r\n để tạo một dòng mới bên trong mã nguồn. Tuy nhiên, nếu bạn cũng muốn hiển thị ngắt dòng trong trình duyệt, bạn có thể sử dụng chức năng Php
function sanitize[&$data]{
   return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}


$headers = 'From: '.sanitize[$email];
7 để chèn dòng HTML bị hỏng trước tất cả các dòng mới trong một chuỗi.

Chúng ta hãy xem ví dụ sau để hiểu về cơ bản nó hoạt động như thế nào:

Lưu ý: ký tự

function sanitize[&$data]{
   return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}


$headers = 'From: '.sanitize[$email];
3 viết một dòng mới trong Unix trong khi đối với Windows, có hai chuỗi ký tự: \r\n. Thay vào đó, hãy sử dụng \r\n. The character
function sanitize[&$data]{
   return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}


$headers = 'From: '.sanitize[$email];
3 writes a newline in UNIX while for Windows there is the two character sequence: \r\n. To be on safe side use the \r\n instead.

Câu hỏi thường gặp liên quan

Dưới đây là một số Câu hỏi thường gặp liên quan đến chủ đề này:

  • Cách kết hợp hai chuỗi trong PHP
  • Cách loại bỏ khoảng trắng khỏi chuỗi trong PHP
  • Cách viết bình luận trong PHP

Làm thế nào để bạn chèn một dòng phá vỡ trong email văn bản đơn giản?

$mail->isHTML[false];
$mail->Body = $row_outmsg["body"];

Bạn phải sử dụng dấu ngoặc kép và bạn sử dụng \ r \ n để tạo một dòng mới.

$mail->Body = nl2br[$row_outmsg["body"]];
$mail->AltBody = $row_outmsg["body"];

Chà, bạn đang yêu cầu nó sử dụng thông báo văn bản đơn giản + HTML định dạng kép, nhưng sau đó sử dụng cùng một nội dung cho cả hai, điều này không có ý nghĩa gì. Nếu bạn chỉ muốn một thông báo văn bản đơn giản [sẽ bảo tồn các lần ngắt dòng], hãy làm điều này:

❮ Tham khảo thư PHP

Thí dụ

Gửi một email đơn giản:


mail["","My subject",$msg];
?>

Định nghĩa và cách sử dụng

Hàm thư [] cho phép bạn gửi email trực tiếp từ tập lệnh.

Cú pháp

mail [đến, chủ đề, tin nhắn, tiêu đề, tham số];

Giá trị tham số

Tham sốSự mô tả
đếnYêu cầu. Chỉ định người nhận / máy thu của email
môn họcYêu cầu. Chỉ định chủ đề của email. Lưu ý: Tham số này không thể chứa bất kỳ ký tự dòng mới nàoNote: This parameter cannot contain any newline characters
thông điệpYêu cầu. Xác định tin nhắn sẽ được gửi. Mỗi dòng phải được phân tách bằng LF [\ N]. Các dòng không được vượt quá 70 ký tự.

Windows Lưu ý: Nếu một điểm dừng hoàn toàn được tìm thấy ở đầu một dòng trong tin nhắn, nó có thể bị xóa. Để giải quyết vấn đề này, hãy thay thế toàn bộ điểm dừng bằng một dấu chấm kép: If a full stop is found on the beginning of a line in the message, it might be removed. To solve this problem, replace the full stop with a double dot:

tiêu đềKhông bắt buộc. Chỉ định các tiêu đề bổ sung, như từ, CC và BCC. Các tiêu đề bổ sung phải được phân tách bằng CRLF [\ r \ n].

Lưu ý: Khi gửi email, nó phải chứa một tiêu đề từ tiêu đề. Điều này có thể được đặt với tham số này hoặc trong tệp php.ini. When sending an email, it must contain a From header. This can be set with this parameter or in the php.ini file.

thông sốKhông bắt buộc. Chỉ định một tham số bổ sung cho chương trình SendMail [một tham số được xác định trong cài đặt cấu hình SendMail_Path]. .

Chi tiết kỹ thuật

Giá trị trở lại:Phiên bản PHP:PHP Changelog:
Trả về giá trị băm của tham số địa chỉ hoặc sai khi thất bại. Lưu ý: Hãy nhớ rằng ngay cả khi email được chấp nhận để giao hàng, điều đó không có nghĩa là email thực sự được gửi và nhận!Note: Keep in mind that even if the email was accepted for delivery, it does NOT mean the email is actually sent and received!
4+
Php 7.2: Tham số tiêu đề cũng chấp nhận ARRAYPHP 5.4: Đã thêm bảo vệ phun tiêu đề cho tham số tiêu đề.php 4.3.0: [Chỉ Windows] Tất cả các tiêu đề tùy chỉnh [như từ, CC, BCC và ngày] được hỗ trợ và không phải là trường hợp -Sensitive.php 4.2.3: Tham số tham số bị vô hiệu hóa trong Safe Modephp 4.0.5: Tham số tham số đã được thêm
PHP 5.4: Added header injection protection for the headers parameter.
PHP 4.3.0: [Windows only] All custom headers [like From, Cc, Bcc and Date] are supported, and are not case-sensitive.
PHP 4.2.3: The parameter parameter is disabled in safe mode
PHP 4.0.5: The parameter parameter was added

Nhiều ví dụ hơn

Gửi email với các tiêu đề bổ sung:


?>

Gửi email HTML:




HTML email


This email contains HTML Tags!




Firstname
Lastname





John Doe



";

Gửi email HTML:
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";

$ message = "HTML Email Email này chứa các thẻ HTML! FirstName lastName john doe";
$headers .= 'From: ' . "\r\n";
$headers .= 'Cc: ' . "\r\n";

// Luôn đặt loại nội dung khi gửi email HTML $ Headers = "MIME-PROVERS: 1.0". "\ r \ n"; $ Tiêu đề. = "Loại nội dung: Text/HTML; Charset = UTF-8". "\ r \ n";
?>

// Thêm tiêu đề $ tiêu đề. = 'Từ:'. "\ r \ n"; $ Tiêu đề. = 'CC:'. "\ r \ n";


mail [$ to, $ chủ đề, $ tin nhắn, $ tiêu đề]; ?>

Sử dụng các thẻ dòng mới: Các ký tự mới \ n hoặc \ r \ n có thể được sử dụng để tạo một dòng mới bên trong mã nguồn.Ví dụ 1: PHP.Newline characters \n or \r\n can be used to create a new line inside the source code. Example 1: PHP.

Làm thế nào để bạn thêm một dòng trong một thân email?

Điều này cũng có thể được thực hiện bằng cách thêm thẻ HTML trong văn bản của bạn bất cứ nơi nào bạn cần một dòng mới trong thân email.adding the HTML tag
in your text
wherever you need a new line in the email body.

Làm thế nào để phá vỡ dòng trong PHP?

Hàm nl2br [] chèn các dòng HTML [hoặc] ở phía trước của mỗi dòng mới [\ n] trong một chuỗi.nl2br[] function inserts HTML line breaks [
or
] in front of each newline [\n] in a string.

Làm thế nào để bạn chèn một dòng phá vỡ trong email văn bản đơn giản?

Bạn phải sử dụng dấu ngoặc kép và bạn sử dụng \ r \ n để tạo một dòng mới.use \r\n to make a new line.

Bài Viết Liên Quan

Chủ Đề