我正在开发一个系统,如果客户提交订单,他们会收到一封确认电子邮件。然而,我想实现以下目标。如果客户点击回复并回复此电子邮件地址,我希望他们的消息不要发送到该电子邮件地址,而是存储在服务器上的MySQL数据库中。
有没有办法用这种方式"拦截"和发送电子邮件?
将回复地址设置为直接进入邮箱,您可以使用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函数的完整列表非常详尽。
如果没有邮箱,这是不可能的直接方式。
但您可以为此做一个特殊的邮箱,从PHP中提取电子邮件到imap_*
函数,并基于subject
或email
将其保存在数据库中,然后删除该电子邮件。
使用PHP IMAP函数,您可以读取发送到特定地址的邮件。但是,你不能让它不发送到那个地址。但是您可以使用邮件,将其放入数据库并删除。
我认为没有一种方法可以轻松做到这一点。你可以做的是在你的电子邮件中有一个回复邮件头,并将其发送到一个受监控的邮箱,守护程序类型的服务会定期检查新的电子邮件并完成它的工作。
您可以查看以下链接和资源:
-
http://framework.zend.com/manual/en/zend.mail.read.html
-
http://code.google.com/p/php-imap
或者您可以按照这个SO问题
是的,这是可能的。看看这里:http://www.mddhosting.com/support/knowledgebase/1011/Email-Piping-to-a-PHP-Script-in-cPanel-x3-Theme.html
和另一个:http://harrybailey.com/2009/02/send-or-pipe-an-email-to-a-php-script/