2012-08-25 26 views
17

Tôi đang sử dụng liên kết mailto để điền bcc của chương trình email mặc định của người dùng.phân cách tốt nhất để tách nhiều email là

$mem_email=" ";  
$sql="SELECT email_address FROM employee"; 
$contacts = $db->query($sql); 
while($contact = $db->fetchByAssoc($contacts)) 
{ 
    if($contact['email_address']!="" && $contact['email_address']!=NULL) 
    { 
     $mem_email.=$contact['email_address'].", "; 
    } 
} 

header("Location: mailto:?bcc={$mem_email}"); 

Câu hỏi của tôi là cách phân tách tốt nhất để tách nhiều email trong trường bcc hoặc; .

Trong trường hợp của tôi, tôi đang sử dụng ','.

+0

Nếu bạn đang sử dụng neo cũ 'mailto' cũ thì có, đó là cách tốt nhất. –

Trả lời

24

Dấu phân cách phải là dấu phẩy (,) và không được có khoảng trống.

Xem RFC 6068.

+1

Cảm ơn, RFC 6068 liên kết thực sự tuyệt vời để tìm hiểu 'Mailto' URI Scheme. – mansoor

1

Sử dụng đoạn mã sau,

implode(',', $contacts); 

trên mã sẽ cho dấu phẩy tách email.

+0

Tôi đã sử dụng '$ mem_email. = $ Contact ['email_address'].", ";' Và nó đang hoạt động tốt, – mansoor

+0

Tôi đã sử dụng '$ mem_email. = $ Contact ['email_address'].", ";' Và nó hoạt động tốt. Là 'implode (',', $ contacts);' có bất kỳ lợi ích bổ sung nào không ?? – mansoor

+0

mansoor, với phiên bản của bạn, chuỗi địa chỉ email nối của bạn sẽ có dấu phẩy, nhưng việc sử dụng implode sẽ chỉ đặt dấu phẩy giữa các địa chỉ chứ không phải ở cuối. Bên cạnh đó, nó hoàn toàn là thẩm mỹ - mã đơn giản trông đẹp hơn và dễ theo dõi hơn, nhưng cuối cùng tùy thuộc vào bạn - những khác biệt nhỏ trong tối ưu hóa sẽ không tạo ra bất kỳ sự khác biệt nào trong trường hợp này. –

7

Dưới đây là một cảnh báo trễ trong trường hợp bất cứ ai cần nó:

Mặc dù RFC khuyến cáo một cách rõ ràng một dấu phẩy, Microsoft Outlook sẽ sử dụng "ký tự phân cách danh sách" được định nghĩa trong các thiết lập trong khu vực. Các liên kết mailto của bạn có thể không hoạt động chính xác cho người dùng Windows + Outlook của bạn có hệ thống được định cấu hình bằng dấu phân cách danh sách khác như dấu chấm phẩy. Outlook sẽ đơn giản từ chối tách các địa chỉ email bằng dấu phẩy.

Chỉ cần lưu ý điều gì đó.

Các vấn đề liên quan