PHP更改从电子邮件解析的字符串

时间:2015-02-13 02:57:38

标签: php email

使用PHP脚本文件过滤电子邮件。一切正常,但似乎如果我要在手机(Verizon Wireless)和SMTP服务器之间进行对话,Verizon会更改外发邮件的格式。

例如,我需要使用XXX@vtext.com回复电子邮件,但Verizon将回复XXX@vzwpix.com,但无法回复。所以我创建了以下代码来尝试删除并替换@ vzwpix.com,但它仍然没有发送邮件。我知道代码正在运行,因为如果我将$from函数中的mail更改为XXX@vtext.com,则代码可以正常工作并发送消息。

//Parse "from"
$from1 = explode ("\nFrom: ", $email);
$from2 = explode ("\n", $from1[1]);

if(strpos ($from2[0], '<') !== false)
{
    $from3 = explode ('<', $from2[0]);
    $from4 = explode ('>', $from3[1]);
    $from = $from4[0];
}
else
{
    $from = $from2[0];
}

if(strpos ($from[1], '@vzwpix.com') !== false) {
    str_replace('@vzwpix.com', '@vtext.com', $from);
}

var_dump( mail( $from, "Hi", "What is the email:"));

顺便说一句,我只是出于发展目的使用var_dump

我做了一些研究,我认为最好的方法可能就是在@符号上爆炸XXX@vzwpix.com,然后运行str_replace('vzwpix.com','vtext.com', $from5);然而,这不起作用然后我想在运行str_replace之后可能会破坏它?

2 个答案:

答案 0 :(得分:0)

如果坏域是静态的,为什么不在'vzwpix'上爆炸然后在'vtext'上内爆?这应该替换地址字符串中的每个错误实例。

答案 1 :(得分:0)

您忘记了str_replace的结果

$from_with_vtext=str_replace('@vzwpix.com', '@vtext.com', $from[1]);