2012-08-25 57 views
17

我正在使用mailto鏈接來填充用戶的默認電子郵件程序的密件抄送。什麼是分隔多個電子郵件的最佳分隔符

$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}"); 

我的問題是什麼是在BCC場 分隔多個電子郵件的最佳分離,或; 。

在我的情況下,我正在使用','。

+0

如果你使用普通的'mailto'錨,那麼是的,那是最好的方法。 –

回答

24

分隔符應該是一個逗號(,)並且不應有空格。

參見RFC 6068

+1

謝謝,RFC 6068鏈接真的很棒,可以學習'mailto'URI Scheme。 – mansoor

1

使用下面的代碼,

implode(',', $contacts); 

上面的代碼將會給逗號分隔的電子郵件。

+0

我已經使用了'$ mem_email。= $ contact ['email_address']。「,」;'這樣做很好, – mansoor

+0

我使用了'$ mem_email。= $ contact ['email_address']。「,」;它做得很好。 'implode(',',$ contacts);'還有其他好處嗎? – mansoor

+0

mansoor,使用您的版本,您的連接的電子郵件地址字符串將有一個尾隨逗號,但使用implode只會在地址之間放置一個逗號,而不是末尾。除此之外,它是純粹的審美 - 簡單的代碼看起來更好,更容易遵循,但最終取決於你 - 在這種情況下,優化的微小差異不會產生任何影響。 –

7

這裏有一晚警告的情況下,任何人都需要它:

儘管RFC明確建議一個逗號,微軟Outlook將使用在區域設置中定義的「列表分隔符」。您的mailto鏈接可能無法正常工作,您的Windows + Outlook用戶的系統配置了不同的列表分隔符(如分號)。 Outlook只會拒絕用逗號分割電子郵件地址。

只是要記住。

相關問題