Mailbox
Read emails from remote mailbox
Read emails from remote mailbox
Find emails sent by orderer:
$Mails = $this->get('mailbox','mybox')->getEmails('SENDER',$Order->email);
Set account preferences for mailbox:
mailbox:
- Name: my_mailbox
Host: mail.domain.com
Username: demouser@domain.com
Password: password
Connect to mailbox using account preferences:
$Mailbox = $this->get('mailbox', 'my_mailbox');
$Mailbox = $this->get('mailbox', Array(
'Host' => 'mail.domain.com',
'Username' => 'demouser@domain.com',
'Password' => '1234'
));
Read all messages and print subjects:
foreach ( $Mailbox->getEmails() as $Email ){
$txt .= "{$Email->getSubject()} from {$Email->getFrom()}";
}
Read all emails that are not yet marked as seen, set information to new order and save it:
foreach ( $Mailbox->getEmails('UNSEEN') as $Email ){
$Order = $this->get('page','order');
$Order->name = $Email->getSubject();
$Order->email = $Email->getFrom();
$Order->description = $Email->getBody(); // Marks Email to SEEN!!
$Order->save();
// $Email->delete(); // Delete Email from Mailbox after reading
}
Read all unseen messages and mark them as seen:
foreach ( $Mailbox->getEmails('UNSEEN') as $Email ){
$Email->markSeen();
}
Find all messages from certain email:
foreach ( $Mailbox->getEmails('SENDER', 'sender.name@domain.com')) as $Email ){
$txt .= "{$Email->getSubject()}<br/>";
}
Find messages with multiple terms:
foreach ( $Mailbox->getEmails(Array(
'UNSEEN' => true,
'SENDER' => 'sender.name@domain.com',
'LIMIT' => 50 // Only first 50 emails
)) as $Email ){
$txt .= "{$Email->getSubject()}<br/>";
}
| Emails | Return type | Description |
|---|---|---|
| getMailboxes() | array | List of remote mailboxes (folders). |
| getEmails(flag) | Email[] | Find emails with given flag. |
| getEmails(term,value) | Email[] | Find emails that has value in given term. |
| getEmails(array) | Email[] | Find emails with multiple search terms. |
| Connection | Return type | Description |
|---|---|---|
| setFolder(path) | this | Set remote path. |
| getFolder(path) | string | Get remote path. |
| getStream() | imap_stream | Open connection and return imap connection stream. |
| getRef() | string | Get connection reference: Host, port, folder. |
| connect() | - | Connect to remote server. Connection is made automatically when needed. |
| close() | - | Close connection to remote server. |
| Preferences | Return type | Description |
|---|---|---|
| setHost(string) | this | Set connection host. |
| setUsername(string) | this | Set connection username. |
| setPassword(string) | this | Set connection password. |
| setPort(int) | this | Set connection port. Default: 993. |
| getHost(string) | string | Get current host. |
| getUsername(string) | string | Get current username. |
| getPassword(string) | string | Get current password. |
| getPort(int) | string | Get current port. |
| Read email | Return type | Description |
|---|---|---|
| getFrom() | string | Sender email |
| getTo() | string | Sender email |
| getSubject() | string | Email subject |
| getBody() | string | Email body (html or txt?) |
| getBodyPlain() | string | Email body (txt) |
| getBodyHtml() | string | Email body (html) |
| getTimestamp() | int | Timestamp of send time. |
| getDay() | string | Y-m-d of send time. |
| getTime() | string | H:i of send time. |
| getDate() | eDate | eDate of send time. |
| getAttachments() | array | Email attachments. |
| getAttachment(id) | file | Attachment stream. |
| Edit email | Return type | Description |
|---|---|---|
| setFlag(name,bool) | this | Set given flag to email. |
| markAnswered() | this | Set flag: Answered=TRUE |
| markUnanswered() | this | Set flag: Answered=FALSE |
| markFlagged() | this | Set flag: Flagged=TRUE |
| markUnflagged() | this | Set flag: Flagged=FALSE |
| markSeen() | this | Set flag: Seen=TRUE |
| markUnseen() | this | Set flag: Seen=FALSE |
| delete() | this | Delete Email from server |