2

我正在开发一个系统,如果客户提交订单,他们会收到一封确认电子邮件。但是,我想让以下事情发生。如果客户随后点击回复并回复此电子邮件地址,我希望他们的消息不会发送到该电子邮件地址,而是存储在服务器上的 MySQL 数据库中。

有没有办法以这种方式“拦截”和发送电子邮件?

4

6 回答 6

6

将回复地址设置为直接进入邮箱,您可以使用 PHP 的imap_open访问该邮箱来访问和阅读电子邮件。有了这些,根据需要将数据插入数据库应该是一件简单的事情。

<?php
$mbox = imap_open("{imap.example.org:143}", "username", "password");

echo "<h1>Mailboxes</h1>\n";
$folders = imap_listmailbox($mbox, "{imap.example.org:143}", "*");

if ($folders == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($folders as $val) {
        echo $val . "<br />\n";
    }
}

echo "<h1>Headers in INBOX</h1>\n";
$headers = imap_headers($mbox);

if ($headers == false) {
    echo "Call failed<br />\n";
} else {
    foreach ($headers as $val) {
        echo $val . "<br />\n";
    }
}

imap_close($mbox);
?>

PHP IMAP 函数的完整列表非常详尽。

于 2012-09-04T12:40:13.117 回答
1

没有邮箱直接是不可能的。

但是您可以为此创建一个特殊邮箱,并imap_*从 PHP 获取电子邮件到函数,并基于subjectoremail将它们保存在数据库中,然后删除该电子邮件。

于 2012-09-04T12:40:24.340 回答
1

使用PHP IMAP函数,您可以阅读发送到特定地址的邮件。但是,您不能让它不发送到该地址。但是您可以使用邮件,将其放入数据库并删除它。

于 2012-09-04T12:41:03.990 回答
0

我认为没有办法轻松做到这一点。您可以做的是在您的电子邮件中添加一个回复标题并将其发送到一个受监控的邮箱,一个守护程序类型的服务会定期检查新电子邮件并完成其工作。

于 2012-09-04T12:39:42.747 回答
0

您可以查看以下链接和资源:

  1. http://framework.zend.com/manual/en/zend.mail.read.html

  2. http://code.google.com/p/php-imap

或者你可以按照这个SO question

于 2012-09-04T12:43:35.940 回答