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
'
function sanitize[&$data]{
return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}
$headers = 'From: '.sanitize[$email];
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ự
3 viết một dòng mới trong Unix trong khi đối với Windows, có hai chuỗi ký tự: function sanitize[&$data]{
return str_ireplace[array["\r", "\n", "%0a", "%0d"], '', stripslashes[$data]];
}
$headers = 'From: '.sanitize[$email];
\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ố
đến | Yêu cầu. Chỉ định người nhận / máy thu của email |
môn học | Yê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ệp | Yê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
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!
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 đề]; ?>
Làm thế nào để bạn thêm một dòng trong một thân email?
in your text wherever you need a new line in the email body.
Làm thế nào để phá vỡ dòng trong PHP?
or
] in front of each newline [\n] in a string.