使用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
之后可能会破坏它?
答案 0 :(得分:0)
如果坏域是静态的,为什么不在'vzwpix'上爆炸然后在'vtext'上内爆?这应该替换地址字符串中的每个错误实例。
答案 1 :(得分:0)
您忘记了str_replace的结果
$from_with_vtext=str_replace('@vzwpix.com', '@vtext.com', $from[1]);