Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 30. März 2011 15:20

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

gelöst, CMSmailer in UDT benutzen

Ich würde gerne ein Formular mit einem UDT erstellen und dabei auf die Einstellungen des CMSMailer zurückgreifen. Speziel gehts mir da um die "von"-adresse die dort hinterlegt wurde. an diese soll das formular geschickt werden.
nun habe ich ein bisschen gesucht: http://forum.cmsmadesimple.org/viewtopi … ic=32363.0
aber nirgends gefunden wie ich an die hinterlegte Mail Adresse komme.
Habe auch die cmsmailer klasse untersucht aber entweder ich übersehe das oder dsa geht nicht?!

Method: __construct
Method: GetName
Method: GetFriendlyName
Method: GetVersion
Method: MinimumCMSVersion
Method: GetHelp
Method: GetAuthor
Method: GetAuthorEmail
Method: GetChangeLog
Method: IsPluginModule
Method: HasAdmin
Method: GetAdminSection
Method: GetAdminDescription
Method: VisibleToAdminUser
Method: GetDependencies
Method: Install
Method: InstallPostMessage
Method: UninstallPostMessage
Method: Upgrade
Method: Uninstall
Method: DoAction
Method: _DisplayErrorPage
Method: reset
Method: _SetAdminPrefs
Method: _load
Method: GetAltBody
Method: SetAltBody
Method: GetBody
Method: SetBody
Method: GetCharSet
Method: SetCharSet
Method: GetConfirmReadingTo
Method: SetConfirmReadingTo
Method: GetContentType
Method: SetContentType
Method: GetEncoding
Method: SetEncoding
Method: GetErrorInfo
Method: GetFrom
Method: SetFrom
Method: GetFromName
Method: SetFromName
Method: GetHelo
Method: SetHelo
Method: GetHost
Method: SetHost
Method: GetHostname
Method: SetHostname
Method: GetMailer
Method: SetMailer
Method: GetPassword
Method: SetPassword
Method: GetPort
Method: SetPort
Method: GetPriority
Method: SetPriority
Method: GetSender
Method: SetSender
Method: GetSendmail
Method: SetSendmail
Method: GetSMTPAuth
Method: SetSMTPAuth
Method: GetSMTPDebug
Method: SetSMTPDebug
Method: GetSMTPKeepAlive
Method: SetSMTPKeepAlive
Method: GetSubject
Method: SetSubject
Method: GetTimeout
Method: SetTimeout
Method: GetUsername
Method: SetUsername
Method: GetWordWrap
Method: SetWordWrap
Method: AddAddress
Method: AddAttachment
Method: AddBCC
Method: AddCC
Method: AddCustomHeader
Method: AddEmbeddedImage
Method: AddReplyTo
Method: AddStringAttachment
Method: ClearAddresses
Method: ClearAllRecipients
Method: ClearAttachments
Method: ClearBCCs
Method: ClearCCs
Method: ClearCustomHeaders
Method: ClearReplyTos
Method: IsError
Method: IsHTML
Method: IsMail
Method: IsQmail
Method: IsSendmail
Method: IsSMTP
Method: Send
Method: SetLanguage
Method: SmtpClose
Method: GetSecure
Method: SetSecure
Method: CMSModule
Method: LoadTemplateMethods
Method: LoadLangMethods
Method: LoadFormMethods
Method: LoadRedirectMethods
Method: LoadMiscMethods
Method: function_plugin
Method: RegisterModulePlugin
Method: GetAbout
Method: GetHelpPage
Method: GetModulePath
Method: GetModuleURLPath
Method: MaximumCMSVersion
Method: GetHeaderHTML
Method: SuppressAdminOutput
Method: RegisterRoute
Method: GetParameters
Method: SetParameters
Method: RestrictUnknownParams
Method: SetParameterType
Method: CreateParameter
Method: GetDescription
Method: IsAdminOnly
Method: GetConfig
Method: GetDb
Method: GetVariables
Method: GetContentBlockInput
Method: GetContentBlockValue
Method: ValidateContentBlockValue
Method: RegisterBulkContentFunction
Method: HasContentType
Method: RegisterContentType
Method: GetContentTypeInstance
Method: AllowUninstallCleanup
Method: UninstallPreMessage
Method: AllowAutoInstall
Method: AllowAutoUpgrade
Method: CheckForDependents
Method: CreateXMLPackage
Method: HasAdminBuffering
Method: IsContentModule
Method: IsSoapModule
Method: SupportsLazyLoading
Method: AddUserPre
Method: AddUserPost
Method: EditUserPre
Method: EditUserPost
Method: DeleteUserPre
Method: DeleteUserPost
Method: AddGroupPre
Method: AddGroupPost
Method: EditGroupPre
Method: EditGroupPost
Method: DeleteGroupPre
Method: DeleteGroupPost
Method: AddTemplatePre
Method: AddTemplatePost
Method: EditTemplatePre
Method: EditTemplatePost
Method: DeleteTemplatePre
Method: DeleteTemplatePost
Method: ContentEditPre
Method: ContentEditPost
Method: ContentDeletePre
Method: ContentDeletePost
Method: AddStylesheetPre
Method: AddStylesheetPost
Method: EditStylesheetPre
Method: EditStylesheetPost
Method: DeleteStylesheetPre
Method: DeleteStylesheetPost
Method: AddHtmlBlobPre
Method: AddHtmlBlobPost
Method: EditHtmlBlobPre
Method: EditHtmlBlobPost
Method: DeleteHtmlBlobPre
Method: DeleteHtmlBlobPost
Method: SmartyPreCompile
Method: SmartyPostCompile
Method: HasCapability
Method: get_tasks
Method: IsSyntaxHighlighter
Method: SyntaxActive
Method: SyntaxPageForm
Method: SyntaxPageFormSubmit
Method: SyntaxGenerateHeader
Method: SyntaxGenerateBody
Method: SyntaxTextarea
Method: ShowInSyntaxList
Method: IsWYSIWYG
Method: WYSIWYGActive
Method: WYSIWYGPageForm
Method: WYSIWYGPageFormSubmit
Method: WYSIWYGGenerateHeader
Method: WYSIWYGGenerateBody
Method: WYSIWYGTextarea
Method: ShowInWYSIWYG
Method: DoActionBase
Method: CreateTooltip
Method: CreateTooltipLink
Method: CreateFieldsetStart
Method: CreateFieldsetEnd
Method: CreateFrontendFormStart
Method: CreateFormStart
Method: CreateFormEnd
Method: CreateInputText
Method: CreateLabelForInput
Method: CreateInputTextWithLabel
Method: CreateInputFile
Method: CreateInputPassword
Method: CreateInputHidden
Method: CreateInputCheckbox
Method: CreateInputSubmit
Method: CreateInputReset
Method: CreateFileUploadInput
Method: CreateInputDropdown
Method: CreateInputSelectList
Method: CreateInputRadioGroup
Method: CreateTextArea
Method: CreateSyntaxArea
Method: CreateFrontendLink
Method: CreateLink
Method: create_url
Method: get_pretty_url
Method: CreateContentLink
Method: CreateReturnLink
Method: RedirectForFrontEnd
Method: Redirect
Method: RedirectToAdmin
Method: RedirectContent
Method: GetModuleInstance
Method: GetModulesWithCapability
Method: DefaultLanguage
Method: Lang
Method: ListTemplates
Method: GetTemplate
Method: GetTemplateFromFile
Method: SetTemplate
Method: DeleteTemplate
Method: IsFileTemplateCached
Method: ProcessTemplate
Method: IsDatabaseTemplateCached
Method: ProcessTemplateFromData
Method: ProcessTemplateFromDatabase
Method: ListUserTags
Method: CallUserTag
Method: StartTabHeaders
Method: SetTabHeader
Method: EndTabHeaders
Method: StartTabContent
Method: EndTabContent
Method: StartTab
Method: EndTab
Method: AdminStyle
Method: Audit
Method: CreatePagination
Method: ShowMessage
Method: ShowErrors
Method: CreatePermission
Method: CheckPermission
Method: RemovePermission
Method: GetPreference
Method: SetPreference
Method: RemovePreference
Method: AddEventHandler
Method: CreateEvent
Method: DoEvent
Method: GetEventDescription
Method: GetEventHelp
Method: HandlesEvents
Method: RemoveEvent
Method: RemoveEventHandler
Method: SendEvent
Method: GetDashboardOutput
Method: GetNotificationOutput

Beitrag geändert von nicmare (30. März 2011 19:25)

Offline

#2 30. März 2011 15:54

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.159

Re: gelöst, CMSmailer in UDT benutzen

Das ist eine "Preference".
D.h. so kommt man da ran:

if($cmsmailer =& cms_utils::get_module('CMSMailer'));
{
    $from_username = $cmsmailer->GetPreference('fromuser');
    $from =  $cmsmailer->GetPreference('from');
    ...
}

Einfach mal in die Funktion reset() des CMSMailers schauen.

Offline

#3 30. März 2011 17:05

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: gelöst, CMSmailer in UDT benutzen

ja. da kommen auch die werte raus die ich hinterlegt habe.
nun wollte ich das mal eben ganz einfach testen:

global $gCms;
$cmsmailer =& cms_utils::get_module('CMSMailer');
$from_username = $cmsmailer->GetPreference('fromuser');
$from =  $cmsmailer->GetPreference('from');
$cmsmailer->AddAddress($from,$from_username);
$cmsmailer->SetPriority(1);
$cmsmailer->SetFrom($from);
$cmsmailer->SetFromName($from_username);
$cmsmailer->SetBody('This is the body text');
$cmsmailer->IsHTML(true);
$cmsmailer->SetSubject('This is the subject');
$cmsmailer->Send();

also das soll ne mail sein die an den admin geht und als absender auch den admin drin hat.
aber irgendwie kommt nix an. kriege auch keinen fehler ausgespuckt

Offline

#4 30. März 2011 18:36

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.159

Re: gelöst, CMSmailer in UDT benutzen

Zunächsteinmal brauchst Du 'from' nicht zu setzen, wenn Du dort dieselben Werte eintragen willst, die eh schon drin stehen wink
Ich gehe mal davon aus, dass das CMSMailerModul korrekt konfiguriert ist und wenigstens die Testmail ankommt?

Vielleicht weigert sich auch Dein Provider, eine Mail mit Sender = Empfänger zu verschicken.
Wenn dem so sein sollte, dann würde ich als Empfänger die Emaildresse des Adminaccounts nehmen.
D.h. im CMSMailerModul würde ich ganz allgemein info@blahblah eintragen.
Und der Admin bekommt admin@blahblah.
Vielleicht gehts ja dann.

Bsp.:

if($cmsmailer =& cms_utils::get_module('CMSMailer'))
{
    // alle Benutzer der Admin-Gruppe holen ( 1 = die ID der Admin-Gruppe )
    $admins =& cmsms()->GetUserOperations()->LoadUsersInGroups( 1 );

    foreach($admins as $oneuser)
    {

        /* $oneuser ist ein Objekt mit folgenden Eigenschaften:
            $oneuser->username
            $oneuser->firstname
            $oneuser->lastname
            $oneuser->email
        */

        $cmsmailer->AddAddress($oneuser->email);
        $cmsmailer->SetBody('Inhalt');
        $cmsmailer->IsHTML(true/false);
        $cmsmailer->SetSubject('Betreff');
        $cmsmailer->Send();
        $cmsmailer->ClearAddresses();
    }
}

Oder um nur einem einzigen Admin eine Mail zu schicken:

if($cmsmailer =& cms_utils::get_module('CMSMailer'))
{
    // Admin holen ( 1 = die ID des Users, der das CMS installiert hat)
    $admin = cmsms()->GetUserOperations()->LoadUserByID( 1 );

    // alternativ: User via Username laden
    // $admin = cmsms()->GetUserOperations()->LoadUserByUsername( 'admin' );

    /* $admin ist ein Objekt mit folgenden Eigenschaften:
        $admin->username
        $admin->firstname
        $admin->lastname
        $admin->email
    */

    $cmsmailer->AddAddress($admin->email);
    $cmsmailer->SetBody('Inhalt');
    $cmsmailer->IsHTML(true/false);
    $cmsmailer->SetSubject('Betreff');
    $cmsmailer->Send();
    $cmsmailer->ClearAddresses();
}

Offline

#5 30. März 2011 18:58

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: gelöst, CMSmailer in UDT benutzen

ok, aber wieso erhalte ich dann
Fatal error: Call to a member function AddAddress() on a non-object in /home/www/expostay.gtis.org/htdocs/lib/content.functions.php(969) : eval()'d code on line 11

Offline

#6 30. März 2011 19:20

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.159

Re: gelöst, CMSmailer in UDT benutzen

Ähm... Du hast jetzt bitte nicht einfach nur Copy&Paste gemacht, oder?
Das ganze muss noch in

if($cmsmailer =& cms_utils::get_module('CMSMailer'))
{
    ...
}

Offline

#7 30. März 2011 19:23

nicmare
Server-Pate
Registriert: 15. Dezember 2010
Beiträge: 1.314
Webseite

Re: gelöst, CMSmailer in UDT benutzen

arr, vor lauter rumprobiererei ist das untern tisch gefallen  devil
nun gehts. feine sache. thx.
wieso finde ich zu dem thema nix im wiki? die dokumentation ist mal wieder sehr dürftig

Offline