예제 #1
0
파일: EMailing.php 프로젝트: ahdail/humhub
 /**
  * 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";
 }
예제 #2
0
 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);
 }
예제 #3
0
 /**
  * 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);
 }
예제 #5
0
 /**
  * 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);
 }
예제 #6
0
파일: TestMail.php 프로젝트: ahdail/humhub
 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";
 }
예제 #7
0
파일: User.php 프로젝트: ahdail/humhub
 /**
  * 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;
     }
 }
예제 #9
0
 /**
  * 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);
     }
 }
예제 #10
0
파일: Message.php 프로젝트: skapl/design
 /**
  * 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);
 }
예제 #11
0
 /**
  * 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);
     }
 }