仅导入电子邮件格式(删除无效格式)

时间:2015-02-02 10:06:19

标签: javascript php email

我正在使用oauth为yahoo api导入电子邮件联系人。我已成功将所有来自雅虎的联系电子邮件导入页面。

我现在的问题是我使用javascript来突出显示文本区域中的每封电子邮件。

这是JavaScript的示例,它将突出显示每封电子邮件。

   echo "$(\"#email-tags\").addTag(\"yahoo@yahoo.com\");";

现在,如果有些内容未格式化为电子邮件,则文本区域将为空白,不会显示任何电子邮件。

我现在的问题是如何只导入格式化为电子邮件的内容。因为有时在电子邮件联系中,有一些来自邮件的联系人,其格式如下:DAFDGREGSDFHASRFEW2< =不是电子邮件格式,这将在文本区域中使我的javascript错误并且不会显示任何电子邮件。

以下是雅虎电子邮件联系的最后几行:

// Call Contact API 
$retarrs = callcontact_yahoo(OAUTH_CONSUMER_KEY, OAUTH_CONSUMER_SECRET, $guid, $access_token, $access_token_secret, false, true);

//I have to use a delimiter of white space to separate each email here.  
$ymail = str_replace(',', ' ', $retarrs); 

//This is my javascript tag & the email contact list will show.     
echo "$(\"#email-tags\").addTag(\"".$ymail."\");";

1 个答案:

答案 0 :(得分:0)

您可以使用this post中的此方法:

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    // invalid emailaddress
}

所以,你的决赛可能看起来像(在PHP中):

    function is_email($email){
    if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
        return true;
    }
    else
        return false;
}

// Call Contact API
$retarrs = "test@test.com,peter@peter.com,hey@@hey,nothing";

//Explode, check, and re-collapse the string
$exploded = explode(",", $retarrs);
$exploded_emails = array();
foreach ($exploded as &$string) {
    if (is_email($string))
        $exploded_emails[] = $string;
}
$ymail = implode(" ",$exploded_emails);

echo "the emails are:" . $ymail;