0

fromメールのヘッダーにあるパラメータの次の4つの形式を使用してください。

From: Jon Doe <jon.doe@a.validdomain.com>

From: "Jon Doe" <jon.doe@a.validdomain.com>

From: <jon.doe@a.validdomain.com>

From: jon.doe@a.validdomain.com

これらのpreg_matchで使用する電子メールアドレスと一致する正規表現を作成した人はいますか?私はいくつか試しましたが、<そして>それらを追い出している

4

3 に答える 3

2
var_dump(imap_rfc822_parse_adrlist($string));

あるいは:

$headers = imap_rfc822_parse_headers("From: Jon Doe <jon.doe@a.validdomain.com>");
$from_email = $headers->from[0]->mailbox.'@'.$headers->from[0]->host;
于 2012-06-27T17:49:35.760 に答える
1

あなたが探している正規表現は

^From:.*?<?(\S+@\S+?)>?\s*$  
This will match the whole thing in any of the 4 cases

電子メールだけに一致するものを探している場合は、何度も尋ねられています...正規表現の電子メールを検索してください

+ 記号または . 電子メールだけでなく、基本は次のようになります

\b[!#\$%&'\*\+\-/=\?\^_`{\|}~a-zA-Z0-9][!#\$%&'\*\+\-/=\?\^_`{\|}~a-zA-Z0-9\.]*[!#\$%&'\*\+\-/=\?\^_`{\|}~a-zA-Z0-9]@[a-zA-Z0-9\-][a-zA-Z0-9\-\.]+[a-zA-Z0-9\-]\b
This is what I use.
于 2012-06-27T17:49:04.660 に答える
0

正規表現を試す([^<>\s]+)>?$

于 2012-06-27T17:48:40.830 に答える