Odesílání iCal – ICS události
- FJP
- Člen | 124
Ahoj snažím se poslat iCalendar pozvánku, ale marně.
dostávám error:
Missing argument 2 for Nette\Mail\MimePart::setHeader()
$organizer = 'OKškolení';
$organizer_email = 'organizator@email.cz';
$participant_name_1 = 'Jmeno ucastnika';
$participant_email_1= 'muj@email.cz';
$location = "Praha";
$date = '20131026';
$startTime = '0800';
$endTime = '0900';
$subject = 'kód + název';
$desc = 'Test';
$headers = 'Content-Type:text/calendar; Content-Disposition: inline; charset=utf-8;\r\n';
$headers .= "Content-Type: text/plain;charset=\"utf-8\"\r\n";
$message = "BEGIN:VCALENDAR\r\n
VERSION:2.0\r\n
PRODID:-//Deathstar-mailer//theforce/NONSGML v1.0//EN\r\n
METHOD:REQUEST\r\n
BEGIN:VEVENT\r\n
UID:" . md5(uniqid(mt_rand(), true)) . "example.com\r\n
DTSTAMP:" . gmdate('Ymd').'T'. gmdate('His') . "Z\r\n
DTSTART:".$date."T".$startTime."00Z\r\n
DTEND:".$date."T".$endTime."00Z\r\n
SUMMARY:".$subject."\r\n
ORGANIZER;CN=".$organizer.":mailto:".$organizer_email."\r\n
LOCATION:".$location."\r\n
DESCRIPTION:".$desc."\r\n
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP=TRUE;CN".$participant_name_1.";X-NUM-GUESTS=0:MAILTO:".$participant_email_1."\r\n
END:VEVENT\r\n
END:VCALENDAR\r\n";
$headers .= $message;
$mail = new Message;
$mail->setFrom('web-no-reply@mujweb.com')
->addTo('muj@email.cz')
->setSubject('test')
->setHeader($headers)
->setBody($message);
$this->mailer->send($mail);
A i když jsem zkoušel nastavit hlavičky jednotlivě:
->setHeader('Content-Type', 'text/calendar')
->setHeader('Content-Disposition', 'inline')
(atd...)
tak se to neodeslalo.
Editoval FJP (31. 8. 2015 14:15)
- Jan Suchánek
- Člen | 404
Ahoj prosimtě, ale tam je povinnej i ten druhej parametr, respektive, co tam do setHeader dáváš?
public function setHeader($name, $value, $append = FALSE)
Editoval Jan Suchánek (31. 8. 2015 14:38)
- iguana007
- Člen | 970
Zde je souhrn toho, jak by si měl funkční iCal pozvánku sestavit, aby ti to fungovalo správně (dotaz je na stackoverflow sice v sekci c#, ale princip je stejný): http://stackoverflow.com/…hout-outlook
- Jan Suchánek
- Člen | 404
Případně zde je diskuze ohledně odesílání iCal v php. Každopádně pokud zakomentuješ:
$headers .= $message;
a opravíš předávání proměných do setHeader tak ti odesílání fungovat bude. Např.:
$mail->setHeader("charset","utf-8");
Editoval Jan Suchánek (31. 8. 2015 15:04)
- FJP
- Člen | 124
Díky všem za rady.
iguana007 napsal(a):
Zde je souhrn toho, jak by si měl funkční iCal pozvánku sestavit, aby ti to fungovalo správně (dotaz je na stackoverflow sice v sekci c#, ale princip je stejný): http://stackoverflow.com/…hout-outlook
Chápu to správně, že se k mailu má přibalit ještě příloha? Myslel jsem, že to není nutné.
- iguana007
- Člen | 970
FJP napsal(a):
Chápu to správně, že se k mailu má přibalit ještě příloha? Myslel jsem, že to není nutné.
Je to tam napsané :)
Part 3: Optionally, attach the .ics file itself, so ordinary mail readers
can offer the user something to click on. Outlook does not really require the
attachment because it just reads the text/calendar part.
Tj. pokud chceš, aby ti to fungovalo ve většině klientů, tak je lepší přílohu přidat ;)
Editoval iguana007 (1. 9. 2015 15:50)
- FJP
- Člen | 124
iguana007 napsal(a):
FJP napsal(a):
Chápu to správně, že se k mailu má přibalit ještě příloha? Myslel jsem, že to není nutné.Je to tam napsané :)
Part 3: Optionally, attach the .ics file itself, so ordinary mail readers can offer the user something to click on. Outlook does not really require the attachment because it just reads the text/calendar part.Tj. pokud chceš, aby ti to fungovalo ve většině klientů, tak je lepší přílohu přidat ;)
Už funguje, díky ;)