/** * Run method for EMailing System * * @param type $args */ public function run($args) { $this->printHeader('E-Mail Interface'); if (!isset($args[0]) || $args[0] != "daily" && $args[0] != 'hourly') { print "\n Run with parameter:\n" . "\t daily - for Daily Mailings\n" . "\t hourly - for Hourly Mailings\n"; print "\n\n"; exit; } $this->mode = $args[0]; Yii::import("application.modules_core.wall.*", true); $users = User::model()->with('httpSessions')->findAllByAttributes(array('status' => User::STATUS_ENABLED)); foreach ($users as $user) { print "Processing : " . $user->email . ": "; $notificationContent = $this->getNotificationContent($user); $activityContent = $this->getActivityContent($user); // Something new? if ($notificationContent == "" && $activityContent == "") { print "Nothing new! \n"; continue; } $message = new HMailMessage(); $message->view = 'application.views.mail.EMailing'; $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($user->email); if ($this->mode == 'hourly') { $message->subject = Yii::t('base', "Latest news"); } else { $message->subject = Yii::t('base', "Your daily summary"); } $message->setBody(array('notificationContent' => $notificationContent, 'activityContent' => $activityContent, 'user' => $user), 'text/html'); Yii::app()->mail->send($message); print "Sent! \n"; } print "\nEMailing completed.\n"; }
public function send($email) { $message = new HMailMessage(); $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($email); $message->view = "application.views.mail.TextOnly"; $message->subject = $this->subject; $message->setBody(array('message' => $this->message), 'text/html'); Yii::app()->mail->send($message); }
/** * Sends Change E-Mail E-Mail * */ public function sendChangeEmail() { if ($this->validate()) { $user = Yii::app()->user->getIdentity(); $token = md5(Setting::Get('secret') . $user->guid . $this->newEmail); $message = new HMailMessage(); $message->view = "application.modules_core.user.views.mails.ChangeEmail"; $message->addFrom(Setting::Get('systemEmailAddress', 'mailing'), Setting::Get('systemEmailName', 'mailing')); $message->addTo($this->newEmail); $message->subject = Yii::t('UserModule.forms_AccountChangeEmailForm', 'E-Mail change'); $message->setBody(array('user' => $user, 'newEmail' => $this->newEmail, 'token' => $token), 'text/html'); Yii::app()->mail->send($message); } }
/** * Sends this user a new password by E-Mail * */ public function recoverPassword() { $user = User::model()->findByAttributes(array('email' => $this->email)); // Switch to users language - if specified if ($user->language !== "") { Yii::app()->language = $user->language; } $token = UUID::v4(); $user->setSetting('passwordRecoveryToken', $token . '.' . time(), 'user'); $message = new HMailMessage(); $message->view = "application.modules_core.user.views.mails.RecoverPassword"; $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($this->email); $message->subject = Yii::t('UserModule.forms_AccountRecoverPasswordForm', 'Password Recovery'); $message->setBody(array('user' => $user, 'linkPasswordReset' => Yii::app()->createAbsoluteUrl("//user/auth/resetPassword", array('token' => $token, 'guid' => $user->guid))), 'text/html'); Yii::app()->mail->send($message); }
/** * Sends this user a new password by E-Mail * */ public function recoverPassword() { $user = User::model()->findByAttributes(array('email' => $this->email)); // Switch to users language Yii::app()->language = Yii::app()->user->language; // Set New Password $userPassword = new UserPassword(); $userPassword->user_id = $user->id; $newPassword = $userPassword->setRandomPassword(); $userPassword->save(); $message = new HMailMessage(); $message->view = "application.modules_core.user.views.mails.RecoverPassword"; $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($this->email); $message->subject = Yii::t('UserModule.forms_AccountRecoverPasswordForm', 'Password Recovery'); $message->setBody(array('user' => $user, 'newPassword' => $newPassword), 'text/html'); Yii::app()->mail->send($message); }
public function run($args) { print " E-Mail - Test Interface\n"; print "-------------------------------------------------------------------------\n\n"; if (!isset($args[0]) || $args[0] == "") { print "\n Run with parameter [email]!\n" . (print "\n\n"); exit; } $email = $args[0]; $user = User::model()->findByPk(1); $message = new HMailMessage(); $message->view = 'application.views.mail.EMailing'; $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($email); $message->subject = "Test Mail"; $message->setBody(array('user' => $user), 'text/html'); Yii::app()->mail->send($message); print "Sent! \n"; print "\nEMailing completed.\n"; }
/** * Notifies groups admins for approval of new user via e-mail. * This should be done after a new user is created and approval is required. * * @todo Create message template, move message into translation */ private function notifyGroupAdminsForApproval() { // No admin approval required if ($this->status != User::STATUS_NEED_APPROVAL || !HSetting::Get('needApproval', 'authentication_internal')) { return; } foreach (GroupAdmin::model()->findAllByAttributes(array('group_id' => $this->group_id)) as $admin) { $adminUser = User::model()->findByPk($admin->user_id); if ($adminUser !== null) { $approvalUrl = Yii::app()->createAbsoluteUrl("//admin/approval"); $html = "Hello {$adminUser->displayName},<br><br>\n\n" . "a new user {$this->displayName} needs approval.<br><br>\n\n" . "Click here to validate:<br>\n\n" . HHtml::link($approvalUrl, $approvalUrl) . "<br/> <br/>\n"; $message = new HMailMessage(); $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($adminUser->email); $message->view = "application.views.mail.TextOnly"; $message->subject = Yii::t('UserModule.models_User', "New user needs approval"); $message->setBody(array('message' => $html), 'text/html'); Yii::app()->mail->send($message); } else { Yii::log("Could not load Group Admin User. Inconsistent Group Admin Record! User Id: " . $admin->user_id, CLogger::LEVEL_ERROR); } } return true; }
public function sendInviteMail($userInvite) { // Switch to systems default language Yii::app()->language = HSetting::Get('defaultLanguage'); $message = new HMailMessage(); $message->view = "application.modules.rooms.views.mails.UserInviteRoom"; $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($userInvite->email); $message->subject = Yii::t('RoomsModule.views_mails_UserInviteRoom', 'Room Invite'); $message->setBody(array('originator' => $userInvite->userOriginator, 'originatorName' => $userInvite->userOriginator->displayName, 'token' => $userInvite->token, 'roomName' => $this->getOwner()->name), 'text/html'); Yii::app()->mail->send($message); // Switch back to users language if (Yii::app()->user->language !== "") { Yii::app()->language = Yii::app()->user->language; } }
/** * Sends the invite e-mail * */ public function sendInviteMail() { // User requested registration link by its self if ($this->source == self::SOURCE_SELF) { $message = new HMailMessage(); $message->view = "application.modules_core.user.views.mails.UserInviteSelf"; $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($this->email); $message->subject = 'Registration Link'; $message->setBody(array('token' => $this->token), 'text/html'); Yii::app()->mail->send($message); } elseif ($this->source == self::SOURCE_INVITE) { $message = new HMailMessage(); $message->view = "application.modules_core.user.views.mails.UserInviteSpace"; $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($this->email); $message->subject = 'Space Invite'; $message->setBody(array('originator' => $this->userOriginator, 'originatorName' => $this->userOriginator->displayName, 'token' => $this->token, 'workspaceName' => $this->workspaceInvite->name), 'text/html'); Yii::app()->mail->send($message); } }
/** * Notify given user, about this message * An email will sent. */ public function notify($user) { // User dont wants any emails #if ($user->getSetting("receive_email_messaging", "core") == User::RECEIVE_EMAIL_NEVER) { # return; #} $originatorName = $this->originator->displayName; $originatorGuid = $this->originator->guid; $andAddon = ""; if (count($this->users) > 2) { $counter = count($this->users) - 1; $andAddon = Yii::t('MailModule.models_Message', "and {counter} other users", array("{counter}" => $counter)); } $message = new HMailMessage(); $message->view = 'application.modules.mail.views.emails.NewMessage'; $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($user->email); $message->subject = Yii::t('MailModule.models_Message', 'New message from {senderName}', array("{senderName}" => $originatorName)); $message->setBody(array('message' => $this, 'originatorName' => $originatorName, 'originator' => $this->originator, 'andAddon' => $andAddon, 'entry' => $this->getLastEntry(), 'user' => $user, 'originatorGuid' => $originatorGuid), 'text/html'); Yii::app()->mail->send($message); }
/** * Notify User in this message entry */ public function notify() { $senderName = $this->user->displayName; $senderGuid = $this->user->guid; foreach ($this->message->users as $user) { // User dont wants any emails #if ($user->getSetting("receive_email_messaging", "core") == User::RECEIVE_EMAIL_NEVER) { # continue; #} // Ignore this user itself if ($user->id == $this->user_id) { continue; } $message = new HMailMessage(); $message->view = 'application.modules.mail.views.emails.NewMessageEntry'; $message->addFrom(HSetting::Get('systemEmailAddress', 'mailing'), HSetting::Get('systemEmailName', 'mailing')); $message->addTo($user->email); $message->subject = Yii::t('MailModule.models_MessageEntry', 'New message in discussion from %displayName%', array('%displayName%' => $senderName)); $message->setBody(array('message' => $this->message, 'entry' => $this, 'user' => $user, 'sender' => $this->user, 'senderName' => $senderName, 'senderGuid' => $senderGuid, 'originator' => $this->message->originator), 'text/html'); Yii::app()->mail->send($message); } }