本文整理汇总了PHP中EmailMessage::getAllByFolderType方法的典型用法代码示例。如果您正苦于以下问题:PHP EmailMessage::getAllByFolderType方法的具体用法?PHP EmailMessage::getAllByFolderType怎么用?PHP EmailMessage::getAllByFolderType使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EmailMessage
的用法示例。
在下文中一共展示了EmailMessage::getAllByFolderType方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getQueuedCount
/**
* @return integer count of how many emails are queued to go. This means they are in either the TYPE_OUTBOX
* folder or the TYPE_OUTBOX_ERROR folder.
*/
public static function getQueuedCount()
{
return count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX)) + count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX_ERROR));
}
示例2: testNonAlphaNumericSymbolsAsMergeTagFields
/**
* To try to show failure of https://www.pivotaltracker.com/story/show/81571830
* Using trademark symbol to demonstrate merge tag resolution working correctly and it properly printing
* text after the trademark symbol
*/
public function testNonAlphaNumericSymbolsAsMergeTagFields()
{
$account = AccountTestHelper::createAccountByNameForOwner('Candyland™', Yii::app()->user->userModel);
$emailTemplate = new EmailTemplate();
$emailTemplate->builtType = EmailTemplate::BUILT_TYPE_PASTED_HTML;
$emailTemplate->modelClassName = 'Account';
$emailTemplate->type = 1;
$emailTemplate->name = 'some template';
$emailTemplate->subject = 'some subject [[NAME]] is great';
$emailTemplate->htmlContent = 'Account HTML: [[NAME]] after the merge tag is resolved';
$emailTemplate->textContent = 'Account Text: [[NAME]] after the merge tag is resolved';
$this->assertTrue($emailTemplate->save());
$message = new EmailMessageForWorkflowForm('Account', Workflow::TYPE_ON_SAVE);
$recipients = array(array('type' => WorkflowEmailMessageRecipientForm::TYPE_DYNAMIC_TRIGGERED_MODEL_USER, 'audienceType' => EmailMessageRecipient::TYPE_TO, 'dynamicUserType' => DynamicTriggeredModelUserWorkflowEmailMessageRecipientForm::DYNAMIC_USER_TYPE_CREATED_BY_USER));
$message->emailTemplateId = $emailTemplate->id;
$message->sendFromType = EmailMessageForWorkflowForm::SEND_FROM_TYPE_CUSTOM;
$message->sendFromAddress = 'someone@zurmo.com';
$message->sendFromName = 'Jason';
$message->setAttributes(array(EmailMessageForWorkflowForm::EMAIL_MESSAGE_RECIPIENTS => $recipients));
$helper = new WorkflowEmailMessageProcessingHelper($message, $account, Yii::app()->user->userModel);
$this->assertEquals(0, Yii::app()->emailHelper->getQueuedCount());
$this->assertEquals(0, Yii::app()->emailHelper->getSentCount());
$helper->process();
$this->assertEquals(1, Yii::app()->emailHelper->getQueuedCount());
$this->assertEquals(0, Yii::app()->emailHelper->getSentCount());
$emailMessages = EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX);
$this->assertEquals('some subject Candyland™ is great', $emailMessages[0]->subject);
$this->assertEquals('Account Text: Candyland™ after the merge tag is resolved', $emailMessages[0]->content->textContent);
$this->assertEquals('Account HTML: Candyland™ after the merge tag is resolved', $emailMessages[0]->content->htmlContent);
}
示例3: testSubmitCriticalNotificationWithInboxNotificationSettingEnabledAndEmailNotificationSettingEnabled
public function testSubmitCriticalNotificationWithInboxNotificationSettingEnabledAndEmailNotificationSettingEnabled()
{
$initialNotificationCount = Notification::getCount();
$initialEmailMessageCount = EmailMessage::getCount();
$initialSentEmailMessageCount = count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_SENT));
$rules = new SimpleNotificationRules();
$rules->setAllowDuplicates(true);
$rules->addUser($this->user);
$rules->setCritical(true);
$inboxAndEmailNotificationSettings = UserTestHelper::getDefaultNotificationSettingsValuesForTestUser();
$inboxAndEmailNotificationSettings['enableSimpleNotification']['email'] = true;
$inboxAndEmailNotificationSettings['enableSimpleNotification']['inbox'] = true;
UserNotificationUtil::setValue($this->user, $inboxAndEmailNotificationSettings, 'inboxAndEmailNotificationSettings', false);
$this->assertTrue(UserNotificationUtil::isEnabledByUserAndNotificationNameAndType($this->user, 'enableSimpleNotification', 'email'));
$this->assertTrue(UserNotificationUtil::isEnabledByUserAndNotificationNameAndType($this->user, 'enableSimpleNotification', 'inbox'));
$message = new NotificationMessage();
$message->textContent = 'text content for' . __FUNCTION__;
$message->htmlContent = 'html content for' . __FUNCTION__;
NotificationsUtil::submit($message, $rules);
$this->assertEquals($initialNotificationCount + 1, Notification::getCount());
// because it was a critical notification, an email should have been sent immediately.
$this->assertEquals($initialEmailMessageCount + 1, EmailMessage::getCount());
$this->assertEquals($initialSentEmailMessageCount + 1, count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_SENT)));
}
示例4: testTaskStatusBecomesRejectedNotificationWhenOwnerIsNotCurrentUser
public function testTaskStatusBecomesRejectedNotificationWhenOwnerIsNotCurrentUser()
{
$task = new Task();
$task->name = 'RejectOwner Task';
$task->requestedByUser = self::$sally;
$task->owner = self::$katie;
$this->assertEquals(0, Yii::app()->emailHelper->getQueuedCount());
$this->assertTrue($task->save());
$this->assertEquals(1, Yii::app()->emailHelper->getQueuedCount());
EmailMessage::deleteAll();
$this->assertEquals(0, Yii::app()->emailHelper->getQueuedCount());
//Now change status
$task->status = Task::STATUS_REJECTED;
$this->assertTrue($task->save());
//One email should be queued up
$this->assertEquals(1, Yii::app()->emailHelper->getQueuedCount());
$emailMessages = EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX);
$this->assertCount(1, $emailMessages);
$this->assertEquals(1, $emailMessages[0]->recipients->count());
$this->assertEquals('katie@zurmo.com', $emailMessages[0]->recipients[0]->toAddress);
}
示例5: testInvalidMergeTagsReturnOriginalContent
/**
* @depends testProcessWithCustomSender
*/
public function testInvalidMergeTagsReturnOriginalContent()
{
self::$emailTemplate->subject = 'bad subject [[LASTNAME]]';
self::$emailTemplate->textContent = 'bad text [[LASTNAME]]';
self::$emailTemplate->htmlContent = 'bad html [[LASTNAME]]';
$message = new EmailMessageForWorkflowForm('WorkflowModelTestItem', Workflow::TYPE_ON_SAVE);
$recipients = array(array('type' => WorkflowEmailMessageRecipientForm::TYPE_DYNAMIC_TRIGGERED_MODEL_USER, 'audienceType' => EmailMessageRecipient::TYPE_TO, 'dynamicUserType' => DynamicTriggeredModelUserWorkflowEmailMessageRecipientForm::DYNAMIC_USER_TYPE_CREATED_BY_USER));
$message->emailTemplateId = self::$emailTemplate->id;
$message->sendFromType = EmailMessageForWorkflowForm::SEND_FROM_TYPE_CUSTOM;
$message->sendFromAddress = 'someone@zurmo.com';
$message->sendFromName = 'Jason';
$message->setAttributes(array(EmailMessageForWorkflowForm::EMAIL_MESSAGE_RECIPIENTS => $recipients));
$model = new WorkflowModelTestItem();
$model->lastName = 'the lastName';
$model->string = 'the string';
$model->phone = 'the phone';
$saved = $model->save();
$this->assertTrue($saved);
$helper = new WorkflowEmailMessageProcessingHelper($message, $model, Yii::app()->user->userModel);
$this->assertEquals(0, Yii::app()->emailHelper->getQueuedCount());
$this->assertEquals(0, Yii::app()->emailHelper->getSentCount());
$helper->process();
$this->assertEquals(1, Yii::app()->emailHelper->getQueuedCount());
$this->assertEquals(0, Yii::app()->emailHelper->getSentCount());
$emailMessages = EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX);
$this->assertEquals('bad subject [[LASTNAME]]', $emailMessages[0]->subject);
$this->assertEquals('bad text [[LASTNAME]]', $emailMessages[0]->content->textContent);
$this->assertEquals('bad html [[LASTNAME]]', $emailMessages[0]->content->htmlContent);
$this->assertEquals('Jason', $emailMessages[0]->sender->fromName);
$this->assertEquals('someone@zurmo.com', $emailMessages[0]->sender->fromAddress);
$this->assertEquals(1, $emailMessages[0]->recipients->count());
$this->assertEquals('super@zurmo.com', $emailMessages[0]->recipients[0]->toAddress);
$emailMessages[0]->delete();
}
示例6: getSentCount
public function getSentCount()
{
return count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_SENT));
}
示例7: testProcessAfterSaveWhenSendIsImmediateAndToAContactThatIsRelatedToTheTriggeredModel
public function testProcessAfterSaveWhenSendIsImmediateAndToAContactThatIsRelatedToTheTriggeredModel()
{
foreach (EmailMessage::getAll() as $emailMessage) {
$emailMessage->delete();
}
$this->assertEquals(0, Yii::app()->emailHelper->getQueuedCount());
$this->assertEquals(0, Yii::app()->emailHelper->getSentCount());
$emailTemplate = new EmailTemplate();
$emailTemplate->name = 'the name';
$emailTemplate->modelClassName = 'Account';
$emailTemplate->textContent = 'some content';
$emailTemplate->type = 2;
$emailTemplate->subject = 'subject';
$saved = $emailTemplate->save();
$this->assertTrue($saved);
$workflow = new Workflow();
$workflow->setId(self::$savedWorkflow->id);
$workflow->type = Workflow::TYPE_ON_SAVE;
$emailMessageForm = new EmailMessageForWorkflowForm('Account', Workflow::TYPE_ON_SAVE);
$emailMessageForm->sendAfterDurationSeconds = 0;
$emailMessageForm->emailTemplateId = $emailTemplate->id;
$emailMessageForm->sendFromType = EmailMessageForWorkflowForm::SEND_FROM_TYPE_DEFAULT;
$recipients = array(array('type' => WorkflowEmailMessageRecipientForm::TYPE_DYNAMIC_TRIGGERED_MODEL_RELATION, 'audienceType' => EmailMessageRecipient::TYPE_TO, 'relation' => 'contacts'));
$emailMessageForm->setAttributes(array(EmailMessageForWorkflowForm::EMAIL_MESSAGE_RECIPIENTS => $recipients));
$workflow->addEmailMessage($emailMessageForm);
$model = new Account();
$model->name = 'the account';
$contact = new Contact();
$contact->firstName = 'Jason';
$contact->lastName = 'Blue';
$contact->state = ContactsUtil::getStartingState();
$contact->primaryEmail->emailAddress = 'jason@something.com';
$this->assertTrue($contact->save());
$contact2 = new Contact();
$contact2->firstName = 'Laura';
$contact2->lastName = 'Blue';
$contact2->state = ContactsUtil::getStartingState();
$contact2->primaryEmail->emailAddress = 'laura@something.com';
$this->assertTrue($contact2->save());
$model->contacts->add($contact);
$model->contacts->add($contact2);
$this->assertTrue($model->save());
WorkflowEmailMessagesUtil::processAfterSave($workflow, $model, Yii::app()->user->userModel);
$this->assertEquals(1, Yii::app()->emailHelper->getQueuedCount());
$this->assertEquals(0, Yii::app()->emailHelper->getSentCount());
$queuedEmailMessages = EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX);
$this->assertEquals(1, count($queuedEmailMessages));
$this->assertEquals(2, count($queuedEmailMessages[0]->recipients));
$this->assertEquals('Jason Blue', $queuedEmailMessages[0]->recipients[0]->toName);
$this->assertEquals('jason@something.com', $queuedEmailMessages[0]->recipients[0]->toAddress);
$this->assertEquals($contact->id, $queuedEmailMessages[0]->recipients[0]->personOrAccount->id);
$this->assertEquals('Laura Blue', $queuedEmailMessages[0]->recipients[1]->toName);
$this->assertEquals('laura@something.com', $queuedEmailMessages[0]->recipients[1]->toAddress);
$this->assertEquals($contact2->id, $queuedEmailMessages[0]->recipients[1]->personOrAccount->id);
}
示例8: testSuperUserCreateConversation
/**
* @depends testSuperUserAllSimpleControllerActions
*/
public function testSuperUserCreateConversation()
{
$super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
$mary = User::getByUsername('mary');
$accounts = Account::getByName('superAccount');
$superAccountId = $accounts[0]->id;
//Confirm no email notifications are sitting in the queue
$this->assertEquals(0, Yii::app()->emailHelper->getQueuedCount());
$this->assertEquals(0, Yii::app()->emailHelper->getSentCount());
//Test creating conversation via POST, invite Mary
$conversations = Conversation::getAll();
$this->assertEquals(0, count($conversations));
$itemPostData = array('Account' => array('id' => $superAccountId));
$this->setPostArray(array('ConversationParticipantsForm' => array('itemIds' => $mary->getClassId('Item')), 'ConversationItemForm' => $itemPostData, 'Conversation' => array('subject' => 'TestSubject', 'description' => 'TestDescription')));
$this->runControllerWithRedirectExceptionAndGetContent('conversations/default/create');
//Confirm conversation saved.
$conversations = Conversation::getAll();
$this->assertEquals(1, count($conversations));
//Confirm conversation is connected to the related account.
$this->assertEquals(1, $conversations[0]->conversationItems->count());
$this->assertEquals($accounts[0], $conversations[0]->conversationItems->offsetGet(0));
//Confirm Mary is invited.
$this->assertEquals(1, $conversations[0]->conversationParticipants->count());
$this->assertEquals($mary, $conversations[0]->conversationParticipants->offsetGet(0)->person);
$this->assertEquals(0, $conversations[0]->conversationParticipants->offsetGet(0)->hasReadLatest);
//Confirm Mary got the email invite and it was correctly setup with a valid conversation id
$emailMessages = EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX);
$this->assertEquals(1, count($emailMessages));
$this->assertNotContains('conversations/default/details?id=' . $conversations[0]->id . '">', $emailMessages[0]->content->textContent);
//Confirm Mary is the only one with explicit permissions on the conversation
$this->assertEquals(1, Yii::app()->emailHelper->getQueuedCount());
$this->assertEquals(0, Yii::app()->emailHelper->getSentCount());
$explicitReadWriteModelPermissions = ExplicitReadWriteModelPermissionsUtil::makeBySecurableItem($conversations[0]);
$readWritePermitables = $explicitReadWriteModelPermissions->getReadWritePermitables();
$this->assertEquals(1, count($readWritePermitables));
$this->assertTrue(isset($readWritePermitables[$mary->getClassId('Permitable')]));
}
示例9: testGetAllByFolderExcludedPausedCampaignMessages
public function testGetAllByFolderExcludedPausedCampaignMessages()
{
$countBefore = EmailMessage::getCount();
$job = new CampaignQueueMessagesInOutboxJob();
$email = new Email();
$email->emailAddress = 'demo@zurmo.com';
$contact = ContactTestHelper::createContactByNameForOwner('contact 01', $this->user);
$contact->primaryEmail = $email;
$this->assertTrue($contact->save());
$marketingList = MarketingListTestHelper::createMarketingListByName('marketingList 01');
MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList, $contact);
$campaign = CampaignTestHelper::createCampaign('campaign 01', 'subject', 'text Content', 'Html Content', null, null, null, Campaign::STATUS_PROCESSING, null, 0, $marketingList);
$processed = 0;
CampaignItemTestHelper::createCampaignItem($processed, $campaign, $contact);
$this->assertTrue($job->run());
$campaignItems = CampaignItem::getAll();
$this->assertCount(1, $campaignItems);
$campaignItemsProcessed = CampaignItem::getByProcessedAndCampaignId(1, $campaign->id);
$this->assertCount(1, $campaignItemsProcessed);
$countAfter = EmailMessage::getCount();
$this->assertEquals($countAfter, $countBefore + 1);
$outboxCount = count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX));
$outboxNonPausedCount = count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX, true));
$this->assertEquals($outboxCount, $outboxNonPausedCount);
$campaign->status = Campaign::STATUS_PAUSED;
$this->assertTrue($campaign->save());
$outboxCount = count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX));
$outboxNonPausedCount = count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX, true));
$this->assertEquals($outboxCount, $outboxNonPausedCount + 1);
}
示例10: testQueuedEmailsWhenEmailMessageChangeToSentFolder
/**
* @depends testMultipleRecipientsAndTypes
*/
public function testQueuedEmailsWhenEmailMessageChangeToSentFolder()
{
$super = User::getByUsername('super');
Yii::app()->user->userModel = $super;
$this->assertEquals(2, Yii::app()->emailHelper->getQueuedCount());
$emailMessages = EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX);
$this->assertEquals(2, count($emailMessages));
$emailMessages[0]->folder->type = EmailFolder::TYPE_OUTBOX;
$emailMessages[1]->folder->type = EmailFolder::TYPE_OUTBOX;
$emailMessageId = $emailMessages[0]->id;
$sent = Yii::app()->emailHelper->sendQueued();
$this->assertTrue($sent);
$this->assertEquals(0, Yii::app()->emailHelper->getQueuedCount());
$this->assertEquals(0, count(EmailMessage::getAllByFolderType(EmailFolder::TYPE_OUTBOX)));
$emailMessages = EmailMessage::getAllByFolderType(EmailFolder::TYPE_SENT);
$this->assertEquals(2, count($emailMessages));
$this->assertEquals($emailMessageId, $emailMessages[0]->id);
}