この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
署名付きメールアドレスからメールアドレスだけを抽出する
メールの解析を行っていると「署名つきメールアドレス宛名 <test@example.com>」など署名付きのメールアドレスに遭遇するときがあります。今回はphpにて署名付きメールアドレスから署名を取り除き、メールアドレスだけを抽出します。
サンプルプログラム
<?php
/**
* 署名付きメールアドレスから署名を取り除く
* 「署名付き <test@example.jp>」 → 「test@example.jp」
*
* @param $mailaddress
* @return 署名を除いたメールアドレス
*/
function removeMailSignature($mailaddress) {
$tmp = null;
//署名を取り除く
preg_match('/<.*>/',$mailaddress,$tmp);
if(is_array($tmp)) {
if($tmp[0]!="" && strlen($tmp[0])>=3) {
$tmp_mail=substr($tmp[0],1,strlen($tmp[0])-2);
$mailaddress = $tmp_mail;
}
}
return $mailaddress;
}
$mailaddress = '署名付き <test@t3a.jp>';
var_dump(removeMailSignature($mailaddress));
サンプルプログラムの出力結果
[root@localhost]$ php removeMailSignature.php string(11) "test@t3a.jp"
ウェブプログラミングについては下記の本も参考になるので、スキルアップにお役立てください。


