簡體   English   中英

PHP郵件:在$ to和郵件頭中使用引號還是不?

[英]PHP mail: use quotes in $to and in from mail header or NOT?

使用PHP郵件功能時,是否需要在$tofrom/cc/bcc郵件標題中使用引號?

我的意思是,假設我要發送郵件至:

User One <user@domain.com>

我是否必須致電:

mail("\"User One\" <user@domain.com>", ...

要么

mail("User One <user@domain.com>", ...

一旦您給我$to的答案,我$to ,對於其他郵件標題,我通常會以這種方式添加它:

$mail_headers  = "From: " . $from . "\r\n";      
$mail_headers .= "Cc: " . $cc . "\r\n";
$mail_headers .= "Bcc: " . $bcc . "\r\n";
$mail_headers .= "MIME-Version: 1.0\r\nContent-type: text/plain;\r\n\tcharset=\"Windows-1252\";\r\nContent-Transfer-Encoding: 8bit" . "\r\n";      
//I use "Windows-1252" charset, cause "iso-8859-1" DOES NOT DISPLAY EURO CHAR!

mail($to, $subject, $body, $mail_headers);

如果標題中有單引號,也許我需要使用引號? 我不知道有時候我會看到帶引號的示例,其他時候沒有引號,沒有人知道,也許可以解釋。

謝謝!

如果我閱讀了相關的RFC權利:

包含除原子中允許的字符以外的字符的字符串可以用帶引號的字符串格式表示,其中字符用引號(DQUOTE,ASCII值34)包圍。

帶引號的字符串被視為一個單位。 也就是說,在語義上,雙引號字符串與原子相同。

包裝字符串的正確字符是“雙引號" (僅此引號),但這是可選的。

但是,如果收件人名稱中包含空格,我強烈建議您使用它。

收件人必須符合RFC2822( 有關郵件功能,請參閱PHP文檔 )。

由於實際的收件人是<和>之間的內容,因此您是否使用引號並不重要-郵件將發送給同一個人; 但是他自己的電子郵件客戶端可能會顯示不同的內容。

他們在文檔中列出了不帶引號的示例; 我也傾向於那樣做。

這個:

 
 
 
  
  mail("\\"User One\\" <user@domain.com>", ...
 
  

將輸出:

 
 
 
  
  "User One" <user@domain.com>
 
  

而這:

"Sarah Chafer" <sarah.chafer@domain.com>, 

將輸出:

 
 
 
  
  User One <user@domain.com>
 
  

更新:

我沒有RFC的鏈接,只是注意到當您使用Gmail撰寫電子郵件時,它的內容如下:

 "Sarah Chafer" <sarah.chafer@domain.com>, 

看到那里的雙打報價。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM