管道邮件-如何发送正文,multipart/alternative / php preg_match_all返回1或空数


Pipe emails - how to send body, multipart/alternative / php preg_match_all returns 1 or empty array

在寻找答案时,我在这里找到了这个脚本

然而:

它可以发送接收到的电子邮件正文纯文本。为了不丢失数据(链接),我需要以相同的格式发送正文,因为它被接收。

这个脚本是否有一个简单的改变来实现?

btw,稍后,我需要在我的服务器上保存链接文件(来自电子邮件),并将正文中的链接替换为我自己的链接。

谢谢。

不知怎么的,我解决了第一个问题(在我的电子邮件中添加原始边界值),现在,我还有3个要去。这段代码返回1,print_r($urls)

$pattern = '#^http://domain.com/(.*)('w*)0'b#';
preg_match_all($pattern, $email, $urls);

相同的代码返回两个输出的空数组:

1 print_r($urls, true)

2 print_r($urls[0], true)

:

1

Array
(
    [0] => Array
        (
        )
    [1] => Array
        (
        )
    [2] => Array
        (
        )
)
2

Array
(
)

但是,当我在这里测试代码时,它就像charm

一样工作。

我如何得到我的值?将它们放在变量中会非常好,如$url1, $url2…

有人能帮忙吗?(非常感谢您的时间和努力!)

我来回答我的问题。

好的,我已经解决了这个问题。这里有一些信息,如果有人需要的话……

Regex有额外的^。进一步,我改进了这样的模式:"#http://domain.com/([=a-zA-Z'd/-]+)(.|'n|'r)([a-zA-Z'd/-]+)#"这个url有=,这是删除与这一行:$var1=preg_replace("#=(.|'n|'r)#","",$var);这不是最好的方式去,但它的工作。我得到了我的链接在数组中,后来我能够用file_get_contents()file_put_contents()下载文件,用str_replace更改链接很容易。所有的事情都是用for循环完成的,因为每封邮件中的链接数量不一样。

大家节日快乐!