当前位置:  开发笔记 > 编程语言 > 正文

如何从PHP获取电子邮件及其附件

如何解决《如何从PHP获取电子邮件及其附件》经验,为你挑选了3个好方法。

我正在为朋友的婚礼写一个照片库webapp,他们想要一个照片库供客人提交他们当天拍摄的数码照片.

在评估了所有选项后,我认为对用户来说最简单的方法是让他们使用熟悉的界面(他们的电子邮件),让他们将图片作为附件发送.

我已经创建了一个邮箱,但现在我需要连接并检索这些附件以进行自动处理以添加到图库系统.但是怎么样?你有没有看过这方面的教程或预制课程?



1> DreamWerx..:

我曾经做过很多这方面的工作,但我找不到代码,这是我发现的缩小版本.它应该让你走上正确的道路.我曾经从cronjob运行这种类型的脚本.对不起,我找不到最终版本.(

// Open pop mailbox
if (!$mbox = imap_open ("{localhost:110/pop3/notls}INBOX", "user", "tester")) {
  die ('Cannot connect/check pop mail! Exiting');
}

if ($hdr = imap_check($mbox)) {
  $msgCount = $hdr->Nmsgs;
} else {
  echo "Failed to get mail";
  exit;
}

$MN=$msgCount;
$overview=imap_fetch_overview($mbox,"1:$MN",0);

for ($X = 1; $X <= $MN; $X++) {

  $file = imap_fetchbody($mbox, $X, 1);

  imap_delete($mbox, $X);
}

imap_expunge($mbox);
imap_close($mbox);

祝好运!



2> Daniel Papas..:

如果您正在为此目的创建专用邮箱,使用过滤机制几乎绝对不是您想要的.相反,您希望将邮箱作为应用程序的管道,并让应用程序只读入来自stdin的消息,解析主体,并解析主体以获取附件.

我知道所有流行的基于unix的MTA支持邮箱是管道,例如sendmail,postfix和qmail.通常,您可以在别名文件中定义它,如下所示:



#sendmail 或postfix语法msgsubmit:"|/usr/bin/php~path/to/example.php"

然后邮件到msgsubmit @ get路由到php程序进行传递.

这样做的好处是不依赖于IMAP服务器或MTA之外的任何其他服务器,只要您可以控制目标主机的MTA,它就可以正常工作.如果您希望脚本检查系统上的所有消息,那么过滤就是您想要的,我猜测不是这种情况.

如果你想在某个地方保存一个副本(不是一个坏主意),只需定义别名以转到多个地址,如下所示:

msgsubmit: "| /usr/bin/php ~path/to/example.php", msgsubmit-box

或后缀虚拟格式:

msgsubmit
    "| /usr/bin/php ~path/to/example.php"
    msgsubmit-box



3> Liam..:

您是否考虑过使用Google的Picasa网络相册?您可以设置电子邮件地址以发送照片并在线共享.然后,您可以获得这些照片的RSS源,大多数程序员比MTA更熟悉这些照片.

推荐阅读
贴进你的心聆听你的世界
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有