繁体   English   中英

使用PHP脚本处理传入的电子邮件

[英]Processing incoming e-mail with PHP Script

所以我想弄清楚如何发送电子邮件到一个地址,例如,something @ whatever.com而不是发往那里的电子邮件,而是发送或转发到我创建的脚本,以阅读电子邮件的内容并将内容存储到数据库中。 有关如何在PHP中执行此操作的任何建议?

谢谢!

这里有一些代码可以用来帮助你:

// set user to check
$strUser     = "username";
$strPassword = "password";

// open
$hMail = imap_open ("{mail.yourdomain.com:143/notls}INBOX", "$strUser", "$strPassword");

// get headers
$aHeaders = imap_headers( $hMail );

// get message count
$objMail = imap_mailboxmsginfo( $hMail );

// process messages
for( $idxMsg = 1; $idxMsg <= $objMail->Nmsgs; $idxMsg++  )
{
    // get header info
    $objHeader = imap_headerinfo( $hMail, $idxMsg );

    // get from object array
    $aFrom = $objHeader->from;

    // process headers
    for( $idx = 0; $idx < count($aFrom); $idx++ )
    {
        // get object
        $objData = $aFrom[ $idx ];

        // get email from
        $strEmailFrom = $objData->mailbox . "@" . $objData->host;

        // do some stuff here
    }

    // delete message
    imap_delete( $hMail, $idxMsg );
}

// expunge deleted messages
imap_expunge( $hMail );

// close
imap_close( $hMail );

两种选择:

1)如果您可以访问收件人电子邮件服务器上的shell,则可以设置规则以在收到新邮件时触发脚本(例如通过procmail等)。

2)您可以允许电子邮件正常放入邮箱,然后编写PHP脚本以通过IMAP访问邮箱,提取新邮件,处理它们,然后删除它们。 然后每隔几分钟由cron运行一次。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM