Tôi đã chiến đấu với chức năng đọc email của PHP cho phần tốt hơn trong hai ngày. Tôi đang viết một kịch bản để đọc email từ một hộp thư và lưu bất kỳ tệp đính kèm nào vào máy chủ. Nếu bạn đã từng làm điều gì đó tương tự, bạn có thể hiểu nỗi đau của tôi: PHP không hoạt động tốt với email!Làm cách nào để lưu tệp đính kèm email vào máy chủ bằng PHP?
Tôi đã kết nối với máy chủ POP3 và tôi có thể lặp lại các tệp. Dưới đây là đường viền thô của mã:
if (!$mbox = imap_open ("{myserver.com:110/pop3/notls}INBOX", "u", "p"))
die ('Cannot connect/check mail! Exiting');
if ($hdr = imap_check($mbox))
$msgCount = $hdr->Nmsgs;
else
die ("Failed to get mail");
foreach ($overview as $message) {
$msgStruct = imap_fetchstructure($mbox, $message->msgno);
// if it has parts, there are attachments that need reading
if ($msgStruct->parts) {
foreach ($msgStruct->parts as $key => $part) {
switch (strtoupper($part->subtype)) {
case 'GIF': case 'JPEG':case 'PNG':
//do something - but what?!
break;
}
}
}
}
Tôi đã đánh dấu nơi tôi bị kẹt. Tôi có thể sử dụng imap_fetchbody($mbox, $message->msgno, $key+1)
nhưng điều đó mang lại cho tôi một loạt dữ liệu như sau:
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAUDBAQEAwUEBAQFBQUGBwwIBwcHBw8LCwkMEQ8S
EhEPERETFhwXExQaFRERGCEYGh0dHx8fExciJCIeJBweHx7/2wBDAQUFBQcGBw4ICA4eFBEU
Hh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh7/wAAR
CAHiAi0DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK
FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWG
h4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl
5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREA
...
Tôi tin rằng đây là dữ liệu MIME. Tôi cần nó như một hình ảnh! Tôi đã nhìn thấy một số lớp học ném bom trên internet mà yêu cầu bồi thường để làm thủ thuật cần thiết. Tôi không thể khiến bất kỳ ai trong số họ làm việc. Tôi không hiểu tại sao tôi lại gặp khó khăn như vậy!
Trong ngắn, tôi đang tìm một thứ có thể biến chuỗi MIME thô thành dữ liệu thực.
bạn đã kiểm tra mã hóa tệp đính kèm là gì chưa? – kender
bạn có thể đăng một đoạn mã hoàn chỉnh hơn không? tôi không thể có vẻ để có được nó để làm việc bc im không chắc chắn nơi tổng quan $ là đến từ – st4ck0v3rfl0w
Tôi có cùng một vấn đề như của bạn. Tôi đã tìm thấy một số bài viết hay và tôi nghĩ rằng nó có thể giúp bạn http://www.linuxscope.net/articles/mailAttachmentsPHP.html tận hưởng nó :) – Hassan