Grundfunktionalität zum Senden von E-Mails
This commit is contained in:
		
							
								
								
									
										153
									
								
								modules/Mail/Controllers/MailController.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								modules/Mail/Controllers/MailController.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,153 @@
 | 
			
		||||
<?php
 | 
			
		||||
namespace Bdp\Modules\Mail\Controllers;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
use Bdp\Libs\FileAccess;
 | 
			
		||||
use SearchMemberRequest;
 | 
			
		||||
 | 
			
		||||
class MailController
 | 
			
		||||
{
 | 
			
		||||
    public function __construct()
 | 
			
		||||
    {
 | 
			
		||||
	    add_menu_page(
 | 
			
		||||
		    __('E-Mail', BDP_LV_PLUGIN_SLUG),
 | 
			
		||||
		    __('E-Mail', BDP_LV_PLUGIN_SLUG),
 | 
			
		||||
		    'send_mails',
 | 
			
		||||
		    'kompass-mail',
 | 
			
		||||
		    [$this, 'router'],
 | 
			
		||||
		    'dashicons-email',
 | 
			
		||||
		    4
 | 
			
		||||
	    );
 | 
			
		||||
 | 
			
		||||
		/*$mailCompose = new MailCompose();
 | 
			
		||||
	    add_submenu_page(
 | 
			
		||||
		    'kompass-mail',
 | 
			
		||||
		    __('Templates', BDP_LV_PLUGIN_SLUG),
 | 
			
		||||
		    __('Templates', BDP_LV_PLUGIN_SLUG),
 | 
			
		||||
		    'send_mails',
 | 
			
		||||
		    'kompass-mail-compose',
 | 
			
		||||
		    [$mailCompose, '__construct'],
 | 
			
		||||
		    1);*/
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function router()
 | 
			
		||||
    {
 | 
			
		||||
		if (isset($_REQUEST['action'])) {
 | 
			
		||||
            switch ($_REQUEST['action']) {
 | 
			
		||||
                case 'send-email':
 | 
			
		||||
	                // SMTP-Konfiguration
 | 
			
		||||
	                $smtp_host = 'bdp.mein-verein.online'; // SMTP-Host
 | 
			
		||||
	                $smtp_port = 25; // SMTP-Port
 | 
			
		||||
	                $smtp_username = 'noreply@mareike.sachsen.pfadfinden.de'; // SMTP-Benutzername
 | 
			
		||||
	                $smtp_password = 'fwJ_wxbW9G45'; // SMTP-Passwort
 | 
			
		||||
	                $smtp_secure = 'tls'; // Verschlüsselung (tls oder ssl)
 | 
			
		||||
 | 
			
		||||
	                // Einstellungen für wp_mail ändern
 | 
			
		||||
	                add_action( 'phpmailer_init', function( $phpmailer ) use ( $smtp_host, $smtp_port, $smtp_username, $smtp_password, $smtp_secure ) {
 | 
			
		||||
		                $phpmailer->isSMTP();
 | 
			
		||||
		                $phpmailer->Host = $smtp_host;
 | 
			
		||||
		                $phpmailer->Port = $smtp_port;
 | 
			
		||||
		                $phpmailer->SMTPAuth = true;
 | 
			
		||||
		                $phpmailer->Username = $smtp_username;
 | 
			
		||||
		                $phpmailer->Password = $smtp_password;
 | 
			
		||||
						$phpmailer->setFrom('info@pfadfinden-halle.de', 'Pfadfinden - Halle');
 | 
			
		||||
		                #$phpmailer->SMTPSecure = $smtp_secure;
 | 
			
		||||
	                } );
 | 
			
		||||
 | 
			
		||||
	                // Senden Sie die E-Mail
 | 
			
		||||
	                $sent = wp_mail($_REQUEST['mail-to'],$_REQUEST['mail-subject'],$_REQUEST['mail-text'],
 | 
			
		||||
		                ['Reply-To: ' . $_REQUEST['mail-from'], 'Content-Type: text/html; charset=UTF-8']);
 | 
			
		||||
 | 
			
		||||
	                // Überprüfen, ob die E-Mail erfolgreich gesendet wurde
 | 
			
		||||
	                if ( $sent ) {
 | 
			
		||||
		                echo '<p>E-Mail wurde erfolgreich gesendet!</p>';
 | 
			
		||||
	                } else {
 | 
			
		||||
		                echo '<p>Fehler beim Senden der E-Mail!</p>';
 | 
			
		||||
	                }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
					echo $_REQUEST['mail-to'] . '<br />';
 | 
			
		||||
					echo $_REQUEST['mail-text'];
 | 
			
		||||
 | 
			
		||||
					echo 'mail gesendet';
 | 
			
		||||
 | 
			
		||||
	                break;
 | 
			
		||||
 | 
			
		||||
	            case 'create_group_form':
 | 
			
		||||
		            new \Bdp\Modules\Gruppen\Controllers\CreateGroupController();
 | 
			
		||||
		            break;
 | 
			
		||||
 | 
			
		||||
	            case 'update-group':
 | 
			
		||||
					\UpdateGroupAction::execute(['gruppen_name' => $_REQUEST['kompass_groups_group_name']],
 | 
			
		||||
						(int)$_REQUEST['group_id']);
 | 
			
		||||
 | 
			
		||||
					new \Bdp\Modules\Gruppen\Controllers\PrintGroupsController();
 | 
			
		||||
					break;
 | 
			
		||||
 | 
			
		||||
	            case 'create-group':
 | 
			
		||||
					$data = ['gruppen_name' => $_REQUEST['kompass_groups_group_name']];
 | 
			
		||||
					\CreateGroupAction::execute($data);
 | 
			
		||||
					new \Bdp\Modules\Gruppen\Controllers\PrintGroupsController();
 | 
			
		||||
					break;
 | 
			
		||||
 | 
			
		||||
	            case 'new-member':
 | 
			
		||||
		            new \Bdp\Modules\Gruppen\Controllers\CreateMemberController();
 | 
			
		||||
		            break;
 | 
			
		||||
 | 
			
		||||
	            case 'create-member':
 | 
			
		||||
					$userData = \CreateGroupMemberDataAction::execute($_REQUEST);
 | 
			
		||||
					if (count($userData['errors']) === 0) {
 | 
			
		||||
						$memberId = \CreateGroupMemberAction::execute( $userData['data'] );
 | 
			
		||||
						new \Bdp\Modules\Gruppen\Controllers\PrintMemberController($memberId);
 | 
			
		||||
					} else {
 | 
			
		||||
						kompass_print_message_box(implode('<br />', $userData['errors']), 'error');
 | 
			
		||||
						new \Bdp\Modules\Gruppen\Controllers\CreateMemberController($userData['rawData']);
 | 
			
		||||
						exit;
 | 
			
		||||
					}
 | 
			
		||||
		            new \Bdp\Modules\Gruppen\Controllers\PrintGroupsController();
 | 
			
		||||
		            break;
 | 
			
		||||
 | 
			
		||||
	            case 'show-members':
 | 
			
		||||
					$memberList = \ListMemberRequest::listForGroup((int)$_REQUEST['group-id']);
 | 
			
		||||
		            new \Bdp\Modules\Gruppen\Controllers\PrintMemberListController($memberList);
 | 
			
		||||
					break;
 | 
			
		||||
 | 
			
		||||
	            case 'show-member':
 | 
			
		||||
		            new \Bdp\Modules\Gruppen\Controllers\PrintMemberController((int)$_REQUEST['member-id']);
 | 
			
		||||
		            break;
 | 
			
		||||
 | 
			
		||||
	            case 'compose-mail':
 | 
			
		||||
					current_user_can('send_mails');
 | 
			
		||||
		            break;
 | 
			
		||||
 | 
			
		||||
	            case 'delete-group':
 | 
			
		||||
	            if (current_user_can('delete_groups')) {
 | 
			
		||||
	            }
 | 
			
		||||
					break;
 | 
			
		||||
	            case 'edit-group':
 | 
			
		||||
		            if (current_user_can('edit_groups')) {
 | 
			
		||||
						kompass_edit_group_form($_REQUEST['group-id']);
 | 
			
		||||
		            }
 | 
			
		||||
					break;
 | 
			
		||||
 | 
			
		||||
	            default:
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
	        new MailCompose();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
	private function listMembers()
 | 
			
		||||
	{
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    private function printMembers(array $memberList)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user