PHP code example of cosmira / outlook-msg
1. Go to this page and download the library: Download cosmira/outlook-msg library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cosmira / outlook-msg example snippets
use Cosmira\OutlookMessage\Attachment;
use Cosmira\OutlookMessage\Message;
$message = Message::from(file_get_contents('example.msg'));
echo $message->subject();
echo $message->senderName();
echo $message->preferredBody();
$message
->attachments()
->filter(static fn (Attachment $attachment): bool => $attachment->isInline())
->each(static fn (Attachment $attachment): void => print $attachment->contentId());
use Cosmira\OutlookMessage\Message;
Message::make()
->from('Jane Doe', '[email protected] ')
->to('Abigail', '[email protected] ')
->subject('Ship it')
->text('The plain text body')
->save('message.msg');
use Cosmira\OutlookMessage\Message;
$message = Message::from(
file_get_contents('example.msg')
);
echo $message->subject();
echo $message->senderName();
echo $message->senderEmail();
echo $message->preferredBody();
use Cosmira\OutlookMessage\Recipient;
$message
->to()
->each(function (Recipient $recipient) {
printf("%s <%s>\n", $recipient->name() ?? '', $recipient->email() ?? '');
});
// Additional recipient groups:
$message->cc()
->each(static fn (Recipient $recipient): void => print $recipient->email());
// Formatted header lines from the original message:
echo $message->displayTo();
echo $message->displayCc();
echo $message->displayBcc();
use Cosmira\OutlookMessage\Attachment;
$message
->attachments()
->each(static function (Attachment $attachment, int $index): void {
$name = $attachment->fileName()
?? $attachment->displayName()
?? "attachment_{$index}";
file_put_contents(__DIR__."/out/{$name}", $attachment->content() ?? '');
});
use Cosmira\OutlookMessage\Attachment;
$message
->attachments()
->filter(fn (Attachment $attachment) => $attachment->isInline())
->each(fn (Attachment $attachment) => print $attachment->contentId());
use Cosmira\OutlookMessage\Attachment;
$message
->attachments()
->filter(fn (Attachment $attachment) => $attachment->embedded() !== null)
->each(fn (Attachment $attachment) => print $attachment->embedded()?->subject());
$body = $message->preferredBody();
use Cosmira\OutlookMessage\Rtf\RtfDecompressor;
$rtf = RtfDecompressor::decompress($rawRtfBinary);
use DateTimeImmutable;
use DateTimeZone;
use Cosmira\OutlookMessage\Message;
$draft = Message::make()
->from('Jane Doe', '[email protected] ')
->subject('Ship it')
->text('The plain text body')
->html('<p>The <strong>HTML</strong> body</p>')
->withHeaders("X-App: outlook-msg\r\n")
->sentAt(new DateTimeImmutable('2024-01-01 10:00:00', new DateTimeZone('UTC')))
->to('Abigail', '[email protected] ')
->cc('Jess', '[email protected] ')
->bcc('Ops', '[email protected] ')
->attach('notes.txt', 'Remember the meeting at 11:40')
->attachInline('logo.png', $logoBinary, 'cid:logo');
$draft->save('message.msg');
use Cosmira\OutlookMessage\Writer\AttachmentPayload;
use Cosmira\OutlookMessage\Writer\RecipientPayload;
$to = RecipientPayload::to('Abigail', '[email protected] ');
$cc = RecipientPayload::cc('Jess', '[email protected] ');
$bcc = RecipientPayload::bcc('Ops', '[email protected] ');
$file = AttachmentPayload::file('report.pdf', $pdfBinary);
$inline = AttachmentPayload::inline('logo.png', $logoBinary, 'cid:logo');
use Cosmira\OutlookMessage\Writer\MessageBuilder;
$nested = MessageBuilder::make()
->from('Nested Sender', '[email protected] ')
->subject('Nested message')
->text('Hello from inside');
$draft = MessageBuilder::make()
->from('Parent Sender', '[email protected] ')
->subject('Parent message')
->attachEmbedded($nested, 'forwarded.msg');
$raw = $message->rawProperties();
bash
php vendor/bin/phpunit
php vendor/bin/rector process
php vendor/bin/phpstan analyse --no-progress