[PHP]署名付きメールアドレスから署名を取り除く

php_program_top

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

署名付きメールアドレスからメールアドレスだけを抽出する

メールの解析を行っていると「署名つきメールアドレス宛名 <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"

 

 

ウェブプログラミングについては下記の本も参考になるので、スキルアップにお役立てください。

created by Rinker
徳丸 浩(著)
ページ数: 688ページ
出版社:SBクリエイティブ
発売日:2018/06/21

出典:amazon