本文整理汇总了PHP中Horde_Mime_Part::setEOL方法的典型用法代码示例。如果您正苦于以下问题:PHP Horde_Mime_Part::setEOL方法的具体用法?PHP Horde_Mime_Part::setEOL怎么用?PHP Horde_Mime_Part::setEOL使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Horde_Mime_Part
的用法示例。
在下文中一共展示了Horde_Mime_Part::setEOL方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testQuotedPrintableNewlines
public function testQuotedPrintableNewlines()
{
$part = new Horde_Mime_Part();
$part->setType('text/plain');
$part->setContents("A\r\nBā\r\nC");
$this->assertEquals("A\r\nB=C4=81\r\nC", $part->toString());
$part->setEOL("\r\n");
$this->assertEquals("A\r\nB=C4=81\r\nC", $part->toString());
$part2 = new Horde_Mime_Part();
$part2->setType('multipart/mixed');
$part2[] = $part;
$this->assertStringMatchesFormat("This message is in MIME format.\n\n--=_%s\nContent-Type: text/plain\nContent-Transfer-Encoding: quoted-printable\n\nA\nB=C4=81\nC\n--=_%s--", $part2->toString());
}
示例2: sendITipNotifications
/**
* Sends out iTip task notification to the assignee.
*
* Can be used to send task invitations, updates, and cancellations.
*
* @param Nag_Task $task The task in question.
* @param Horde_Notification_Handler $notification
* A notification object used to show result status.
* @param integer $action
* The type of notification to send. One of the Nag::ITIP_* values.
* @param Horde_Date $instance
* If cancelling a single instance of a recurring task, the date of
* this instance.
* @param string $range The range parameter if this is a recurring event.
* Possible values are self::RANGE_THISANDFUTURE
*/
public static function sendITipNotifications(Nag_Task $task, Horde_Notification_Handler $notification, $action, Horde_Date $instance = null, $range = null)
{
global $injector, $registry, $nag_shares;
if (!$task->assignee) {
return;
}
$ident = $injector->getInstance('Horde_Core_Factory_Identity')->create($task->creator);
if (!$ident->getValue('from_addr')) {
$notification->push(sprintf(_("You do not have an email address configured in your Personal Information Preferences. You must set one %shere%s before event notifications can be sent."), $registry->getServiceLink('prefs', 'kronolith')->add(array('app' => 'horde', 'group' => 'identities'))->link(), '</a>'), 'horde.error', array('content.raw'));
return;
}
// Generate image mime part first and only once, because we
// need the Content-ID.
$image = self::getImagePart('big_invitation.png');
$share = $nag_shares->getShare($task->tasklist);
$view = new Horde_View(array('templatePath' => NAG_TEMPLATES . '/itip'));
new Horde_View_Helper_Text($view);
$view->identity = $ident;
$view->task = $task;
$view->imageId = $image->getContentId();
$email = Nag::getUserEmail($task->assignee);
if (strpos($email, '@') === false) {
continue;
}
/* Determine all notification-specific strings. */
$method = 'REQUEST';
switch ($action) {
case self::ITIP_CANCEL:
/* Cancellation. */
$method = 'CANCEL';
$filename = 'task-cancellation.ics';
$view->subject = sprintf(_("Cancelled: %s"), $task->name);
if (empty($instance)) {
$view->header = sprintf(_("%s has cancelled \"%s\"."), $ident->getName(), $task->name);
} else {
$view->header = sprintf(_("%s has cancelled an instance of the recurring \"%s\"."), $ident->getName(), $task->name);
}
break;
case self::ITIP_UPDATE:
if (!empty($task->organizer) && $task->organizer != Nag::getUserEmail($task->creator)) {
// Sending a progress update.
$method = 'REPLY';
} else {
$method = 'UPDATE';
}
case self::ITIP_REQUEST:
default:
if (empty($task->status) || $task->status == self::RESPONSE_NONE) {
/* Invitation. */
$filename = 'task-invitation.ics';
$view->subject = $task->name;
$view->header = sprintf(_("%s wishes to make you aware of \"%s\"."), $ident->getName(), $task->name);
} else {
$filename = 'task-update.ics';
$view->subject = sprintf(_("Updated: %s."), $task->name);
$view->header = sprintf(_("%s wants to notify you about changes of \"%s\"."), $ident->getName(), $task->name);
}
break;
}
$view->attendees = $email;
$view->organizer = empty($task->organizer) ? $registry->convertUserName($task->creator, false) : $task->organizer;
/* Build the iCalendar data */
$iCal = new Horde_Icalendar();
$iCal->setAttribute('METHOD', $method);
$vevent = $task->toiCalendar($iCal);
$iCal->addComponent($vevent);
/* text/calendar part */
$ics = new Horde_Mime_Part();
$ics->setType('text/calendar');
$ics->setContents($iCal->exportvCalendar());
$ics->setName($filename);
$ics->setContentTypeParameter('METHOD', $method);
$ics->setCharset('UTF-8');
$ics->setEOL("\r\n");
/* application/ics part */
$ics2 = clone $ics;
$ics2->setType('application/ics');
/* multipart/mixed part */
$multipart = new Horde_Mime_Part();
$multipart->setType('multipart/mixed');
$inner = self::buildMimeMessage($view, 'notification', $image);
$inner->addPart($ics);
$multipart->addPart($inner);
$multipart->addPart($ics2);
//.........这里部分代码省略.........
示例3: sendITipNotifications
//.........这里部分代码省略.........
}
/* Determine all notification-specific strings. */
switch ($action) {
case self::ITIP_CANCEL:
/* Cancellation. */
$method = 'CANCEL';
$filename = 'event-cancellation.ics';
$view->subject = sprintf(_("Cancelled: %s"), $event->getTitle());
if (empty($instance)) {
$view->header = sprintf(_("%s has cancelled \"%s\"."), $ident->getName(), $event->getTitle());
} else {
$view->header = sprintf(_("%s has cancelled an instance of the recurring \"%s\"."), $ident->getName(), $event->getTitle());
}
break;
case self::ITIP_REQUEST:
default:
$method = 'REQUEST';
if ($status['response'] == self::RESPONSE_NONE) {
/* Invitation. */
$filename = 'event-invitation.ics';
$view->subject = $event->getTitle();
$view->header = sprintf(_("%s wishes to make you aware of \"%s\"."), $ident->getName(), $event->getTitle());
} else {
/* Update. */
$filename = 'event-update.ics';
$view->subject = sprintf(_("Updated: %s."), $event->getTitle());
$view->header = sprintf(_("%s wants to notify you about changes of \"%s\"."), $ident->getName(), $event->getTitle());
}
break;
}
$view->attendees = strval(self::getAttendeeEmailList($event->attendees));
$view->organizer = $registry->convertUserName($event->creator, false);
if ($action == self::ITIP_REQUEST) {
$attend_link = Horde::url('attend.php', true, -1)->add(array('c' => $event->calendar, 'e' => $event->id, 'u' => $email));
$view->linkAccept = (string) $attend_link->add('a', 'accept');
$view->linkTentative = (string) $attend_link->add('a', 'tentative');
$view->linkDecline = (string) $attend_link->add('a', 'decline');
}
/* Build the iCalendar data */
$iCal = new Horde_Icalendar();
$iCal->setAttribute('METHOD', $method);
$iCal->setAttribute('X-WR-CALNAME', $share->get('name'));
$vevent = $event->toiCalendar($iCal);
if ($action == self::ITIP_CANCEL && !empty($instance)) {
// Recurring event instance deletion, need to specify the
// RECURRENCE-ID but NOT the EXDATE.
foreach ($vevent as &$ve) {
try {
$uid = $ve->getAttribute('UID');
} catch (Horde_Icalendar_Exception $e) {
continue;
}
if ($event->uid == $uid) {
$ve->setAttribute('RECURRENCE-ID', $instance);
if (!empty($range)) {
$ve->setParameter('RECURRENCE-ID', array('RANGE' => $range));
}
$ve->setAttribute('DTSTART', $instance, array(), false);
$diff = $event->end->timestamp() - $event->start->timestamp();
$end = clone $instance;
$end->sec += $diff;
$ve->setAttribute('DTEND', $end, array(), false);
$ve->removeAttribute('EXDATE');
break;
}
}
}
$iCal->addComponent($vevent);
/* text/calendar part */
$ics = new Horde_Mime_Part();
$ics->setType('text/calendar');
$ics->setContents($iCal->exportvCalendar());
$ics->setName($filename);
$ics->setContentTypeParameter('method', $method);
$ics->setCharset('UTF-8');
$ics->setEOL("\r\n");
/* application/ics part */
$ics2 = clone $ics;
$ics2->setType('application/ics');
/* multipart/mixed part */
$multipart = new Horde_Mime_Part();
$multipart->setType('multipart/mixed');
$inner = self::buildMimeMessage($view, 'notification', $image);
$inner->addPart($ics);
$multipart->addPart($inner);
$multipart->addPart($ics2);
$recipient = new Horde_Mail_Rfc822_Address($email);
if (!empty($status['name'])) {
$recipient->personal = $status['name'];
}
$mail = new Horde_Mime_Mail(array('Subject' => $view->subject, 'To' => $recipient, 'From' => $ident->getDefaultFromAddress(true), 'User-Agent' => 'Kronolith ' . $registry->getVersion()));
$mail->setBasePart($multipart);
try {
$mail->send($injector->getInstance('Horde_Mail'));
$notification->push(sprintf(_("The event notification to %s was successfully sent."), $recipient), 'horde.success');
} catch (Horde_Mime_Exception $e) {
$notification->push(sprintf(_("There was an error sending an event notification to %s: %s"), $recipient, $e->getMessage(), $e->getCode()), 'horde.error');
}
}
}