我正在撰寫一些代碼,這些代碼將創建一個 iCalendar,然后發送一封帶有所創建事件的 ics 檔案的 Outlook 電子郵件,它按預期作業,但存在一個問題。
發送電子郵件時,附件名稱錯誤(ATT00001.bin 而不是 Meeting.ics),它不是作為 .ics 而是作為 .bin 發送的。檔案的內容仍然是它們應該的樣子。
任何幫助表示贊賞,謝謝!
use Spatie\IcalendarGenerator\Components\Calendar;
use Spatie\IcalendarGenerator\Components\Event;
...
$calendar = Calendar::create('Company test meeting')
->event(Event::create()
->name('Company test meeting')
->description('A test meeting about Company')
->startsAt(new \DateTime('24-03-2022 10:00'))
->endsAt(new \DateTime('24-03-2022 11:30'))
)->get();
$mailer = new Mailer('default');
$mailer->setAttachments([
'Meeting.ics' => [
'data' => $calendar,
'contentDisposition' => false
]
]);
$mailer->setFrom(['[email protected]' => 'CompanyName'])
->setTo('[email protected]')
->setSubject('Company meeting')
->deliver('Hey there I would like to have a meeting about Company');
uj5u.com熱心網友回復:
所以我想通了。當我發送電子郵件時,我使用的是 cakephp 4 食譜。那里說:“mimetype 和 contentId 在這種形式中是可選的。” 我犯了一個錯誤,只是假設我不需要它。
ics 檔案的 mimetype 是文本/日歷,所以我只是將它添加到我的 setAttachments 中,如下所示:
$mailer = new Mailer('default');
$mailer->setAttachments([
'Meeting.ics' => [
'data' => $ical,
'mimetype' => 'text/calendar', //I added the mimetype here
'contentDisposition' => false
]
]);
$mailer->setFrom(['[email protected]' => 'Company'])
->setTo('[email protected]')
->setSubject('Companymeeting')
->deliver("Dummy text " . $attendee . " About " . $description . "");
$this->set('calendar', $ical);
我仍在研究如何獲得正確的檔案名,但這并不像檔案擴展名那么重要。但如果有人知道,我很想知道。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/439634.html
