Search

hm, i had this running a while back on a 2.2.5 system and did not need to configure sendmail at all. i was under the impression that symphony updates sendmail with the sender information given in the preferences. unfortunately i have no practice in setting up either one system. i will have to learn then :)

should i choose smtp over sendmail? what is the pros & cons of using either one?

It's just a point from personal experience really, I can't weigh the pros and cons on this one other than I've always encountered issues with sendmail.

The main problem with SendMail is that installations differ quite a lot. In some installations every email as a sender is accepted, where some require the email to be added to a whitelist. This could be the cause of the email not being sent.

I would strongly suggest moving to an email provider for all important emails. You will never be able to keep up with all the new tech to keep your email out of spamboxes, and these services are very affordable.

If you are just sending confirmation emails and the like, I can recommend Postmark, they support SMTP, so you can just use the default gateways. Another service I am a big fan of is Amazon SES, which I use to send newsletters.

Hi at all! I have installed the 2.3.x branch. so i can write some posts in to the database but i can't send some mails. i become always the same error

        <response result="success" type="created" id="59">
        <message>Eintrag erfolgreich erstellt.</message>
        <filter name="etm-response-notification" status="failed">Die Absenderadresse darf nicht leer sein.</filter>

if some one have an tip for me that would be nice symphony version is 2.3.2 and in know the extension is not aproved at the moment. thanks for help!

Seems that the sender is empty. How have you defined it?

I know, but i have the author in the "Recipients " field. If i change the recipients field to {/data/authors/author/email} then the english version appears

<filter name="etm-response-notification" status="failed">Can not send an email to nobody, please set a recipient.</filter>

i don't know why it doesn't work... :-/

Go to the template preview, then append ?debug to the URL. You should check if the data you are trying to access is actually in the template's XML. Is it?

on top the email templates config (images) here the debug output.

   <?xml version="1.0" encoding="utf-8" ?>
<data>
    <params>
        <today>2013-04-02</today>
        <current-time>21:40</current-time>
        <this-year>2013</this-year>
        <this-month>04</this-month>
        <this-day>02</this-day>
        <timezone>+02:00</timezone>
        <website-name>Tannerdruck Aktionen</website-name>
        <page-title>Tannerdruck Aktionen</page-title>
        <root>http://aktionen.tannerdruck.ch</root>
        <workspace>http://aktionen.tannerdruck.ch/workspace</workspace>
        <root-page>aktionen</root-page>
        <current-page>aktionen</current-page>
        <current-page-id>66</current-page-id>
        <current-path>/</current-path>
        <parent-path>/</parent-path>
        <current-query-string><![CDATA[?debug]]></current-query-string>
        <current-url>http://aktionen.tannerdruck.ch</current-url>
        <upload-limit>5242880</upload-limit>
        <symphony-version>2.3.2</symphony-version>
        <cookie-username>mgd</cookie-username>
        <cookie-pass>PBKDF2v1|10000|ec1914723bddc772e5c3|vugyyhcrcOHNwioYF7qwiE3IMreEVf+qfvqezUz85K1FC56ZmbIZwQ==</cookie-pass>
        <page-types>
            <item handle="index">index</item>
        </page-types>
        <site-mode>live</site-mode>
        <etm-entry-id>64</etm-entry-id>
    </params>
    <events>
        <response result="success" type="created" id="64">
            <message>Eintrag erfolgreich erstellt.</message>
            <filter name="etm-response-notification" status="failed">Die Absenderadresse darf nicht leer sein.</filter>
            <filter name="etm-response-thankyou" status="failed">Die Absenderadresse darf nicht leer sein.</filter>
            <post-values>
                <name>Hans Muster</name>
                <email>musterhans@test.de</email>
                <subject>General Enquiry</subject>
                <body>test</body>
            </post-values>
        </response>
    </events>
    <logged-in-author>
        <author id="1" user-type="developer" primary-account="yes">
            <username>mgd</username>
        </author>
    </logged-in-author>
    <navigation>
        <page handle="aktionen" id="66">
            <name>Tannerdruck Aktionen</name>
            <types>
                <type>index</type>
            </types>
        </page>
        <page handle="rss" id="67">
            <name>RSS</name>
            <types>
                <type>hidden</type>
                <type>XML</type>
            </types>
        </page>
        <page handle="maintenance" id="75">
            <name>Maintenance</name>
            <types>
                <type>hidden</type>
                <type>maintenance</type>
            </types>
        </page>
        <page handle="page-not-found" id="76">
            <name>Page Not Found</name>
            <types>
                <type>404</type>
                <type>hidden</type>
            </types>
        </page>
    </navigation>
    <response>
        <section id="9" handle="response">Response</section>
        <entry id="64">
            <name handle="hans-muster">Hans Muster</name>
            <email handle="musterhans-testde">musterhans@test.de</email>
            <body><![CDATA[test]]></body>
        </entry>
    </response>
    <website-owner>
        <author id="1" user-type="developer" primary-account="yes">
            <name>Dominik Rohr</name>
            <username>mgd</username>
        </author>
    </website-owner>
</data>

thanks for help i think its a small thing...

I see.

The first picture you post sets the recipient to your username. However, this is not a valid email address, so sending will fail. If you were to fill in your email directly, it should work.

Can you please post your response datasource configuration, too? I suspect there is something wrong there. Keep in mind the XML for the ETM is different from that of the page calling the ETM even, so when certain parameters are not set, a datasource can return empty in your email.

ok if i replace the username with the e-mail adress like picture 1 then i receive the same error.

<?xml version="1.0" encoding="utf-8" ?>
<data>
    <params>
        <today>2013-04-03</today>
        <current-time>21:04</current-time>
        <this-year>2013</this-year>
        <this-month>04</this-month>
        <this-day>03</this-day>
        <timezone>+02:00</timezone>
        <website-name>Musterdomain Aktionen</website-name>
        <page-title>Musterdomain Aktionen</page-title>
        <root>http://aktionen.musterdomain.de</root>
        <workspace>http://aktionen.musterdomain.de/workspace</workspace>
        <root-page>aktionen</root-page>
        <current-page>aktionen</current-page>
        <current-page-id>66</current-page-id>
        <current-path>/</current-path>
        <parent-path>/</parent-path>
        <current-query-string><![CDATA[?debug]]></current-query-string>
        <current-url>http://aktionen.musterdomain.de</current-url>
        <upload-limit>5242880</upload-limit>
        <symphony-version>2.3.2</symphony-version>
        <cookie-username>mgd</cookie-username>
        <cookie-pass>PBKDF2v1|10000|ec1914723bddc772e5c3|vugyyhcrcOHNwioYF7qwiE3IMreEVf+qfvqezUz85K1FC56ZmbIZwQ==</cookie-pass>
        <page-types>
            <item handle="index">index</item>
        </page-types>
        <site-mode>live</site-mode>
        <etm-entry-id>68</etm-entry-id>
    </params>
    <events>
        <response result="success" type="created" id="68">
            <message>Eintrag erfolgreich erstellt.</message>
            <filter name="etm-response-notification" status="failed">Die Absenderadresse darf nicht leer sein.</filter>
            <filter name="etm-response-thankyou" status="failed">Die Absenderadresse darf nicht leer sein.</filter>
            <post-values>
                <name>Hans Muster</name>
                <email>musterhans@test.de</email>
                <subject>General Enquiry</subject>
                <body>test</body>
            </post-values>
        </response>
    </events>
    <logged-in-author>
        <author id="1" user-type="developer" primary-account="yes">
            <username>mgd</username>
        </author>
    </logged-in-author>
    <navigation>
        <page handle="aktionen" id="66">
            <name>Musterdomain Aktionen</name>
            <types>
                <type>index</type>
            </types>
        </page>
        <page handle="rss" id="67">
            <name>RSS</name>
            <types>
                <type>hidden</type>
                <type>XML</type>
            </types>
        </page>
        <page handle="maintenance" id="75">
            <name>Maintenance</name>
            <types>
                <type>hidden</type>
                <type>maintenance</type>
            </types>
        </page>
        <page handle="page-not-found" id="76">
            <name>Page Not Found</name>
            <types>
                <type>404</type>
                <type>hidden</type>
            </types>
        </page>
    </navigation>
    <response>
        <section id="9" handle="response">Response</section>
        <entry id="68">
            <name handle="hans-muster">Hans Muster</name>
            <email handle="musterhans-testde">musterhans@test.de</email>
            <body><![CDATA[test]]></body>
        </entry>
    </response>
    <website-owner>
        <author id="1" user-type="developer" primary-account="yes">
            <name>Dominik Rohr</name>
            <username>mgd</username>
        </author>
    </website-owner>
</data>

error if in the recipient field is no e-mail or username (image_2)

<?xml version="1.0" encoding="utf-8" ?>
<data>
    <params>
        <today>2013-04-03</today>
        <current-time>21:03</current-time>
        <this-year>2013</this-year>
        <this-month>04</this-month>
        <this-day>03</this-day>
        <timezone>+02:00</timezone>
        <website-name>Musterdomain Aktionen</website-name>
        <page-title>Musterdomain Aktionen</page-title>
        <root>http://aktionen.musterdomain.de</root>
        <workspace>http://aktionen.musterdomain.de/workspace</workspace>
        <root-page>aktionen</root-page>
        <current-page>aktionen</current-page>
        <current-page-id>66</current-page-id>
        <current-path>/</current-path>
        <parent-path>/</parent-path>
        <current-query-string><![CDATA[?debug]]></current-query-string>
        <current-url>http://aktionen.musterdomain.de</current-url>
        <upload-limit>5242880</upload-limit>
        <symphony-version>2.3.2</symphony-version>
        <cookie-username>mgd</cookie-username>
        <cookie-pass>PBKDF2v1|10000|ec1914723bddc772e5c3|vugyyhcrcOHNwioYF7qwiE3IMreEVf+qfvqezUz85K1FC56ZmbIZwQ==</cookie-pass>
        <page-types>
            <item handle="index">index</item>
        </page-types>
        <site-mode>live</site-mode>
        <etm-entry-id>67</etm-entry-id>
    </params>
    <events>
        <response result="success" type="created" id="67">
            <message>Eintrag erfolgreich erstellt.</message>
            <filter name="etm-response-notification" status="failed">Can not send an email to nobody, please set a recipient.</filter>
            <filter name="etm-response-thankyou" status="failed">Die Absenderadresse darf nicht leer sein.</filter>
            <post-values>
                <name>Hans Mueller</name>
                <email>mueller@test.de</email>
                <subject>General Enquiry</subject>
                <body>test</body>
            </post-values>
        </response>
    </events>
    <logged-in-author>
        <author id="1" user-type="developer" primary-account="yes">
            <username>mgd</username>
        </author>
    </logged-in-author>
    <navigation>
        <page handle="aktionen" id="66">
            <name>Musterdomain Aktionen</name>
            <types>
                <type>index</type>
            </types>
        </page>
        <page handle="rss" id="67">
            <name>RSS</name>
            <types>
                <type>hidden</type>
                <type>XML</type>
            </types>
        </page>
        <page handle="maintenance" id="75">
            <name>Maintenance</name>
            <types>
                <type>hidden</type>
                <type>maintenance</type>
            </types>
        </page>
        <page handle="page-not-found" id="76">
            <name>Page Not Found</name>
            <types>
                <type>404</type>
                <type>hidden</type>
            </types>
        </page>
    </navigation>
    <response>
        <section id="9" handle="response">Response</section>
        <entry id="67">
            <name handle="hans-mueller">Hans Mueller</name>
            <email handle="mueller-testde">mueller@test.de</email>
            <body><![CDATA[test]]></body>
        </entry>
    </response>
    <website-owner>
        <author id="1" user-type="developer" primary-account="yes">
            <name>Dominik Rohr</name>
            <username>mgd</username>
        </author>
    </website-owner>
</data>

image_3 response config

i think i would test the same config with an older symphony release or an other server...

Attachments:
image_3.png, image_2.png and Image_1.png

i think i would test the same config with an older symphony release or an other server

That would be great, sure. Other things you could try first:

  • Would you like to switch off the German language extension and test again, just to be sure?
  • Is there anything useful in the log file (in /manifest/logs) after sending?

ok new server blank symphony install fresh from download page and fresh emailtemplatemanager 2.3x install only basic extensions no extras only emailtemplatemanager. — same error ;-(

but some logs :-)

    ============================================
Log Created: 2013-04-03T21:18:54+02:00
============================================
Symphony Log
Opened:  2013-04-03T21:18:54+02:00
Version: 2.3.2
Domain:  action.newserver.de
--------------------------------------------
04/03/2013 9:41 pm > UNKNOWN: Email Gateway Error (SendmailGateway): Sender email address cannot be empty.
04/03/2013 9:41 pm > UNKNOWN: Email Template Manager:  Xpath query {/data/responses/entry/name} did not return any results, skipping. 
04/03/2013 9:41 pm > UNKNOWN: Email Template Manager:  Xpath query {/data/responses/entry/email} did not return any results, skipping. 
04/03/2013 9:41 pm > UNKNOWN: Email Template Manager:  Recipient is empty, skipping.
04/03/2013 9:41 pm > UNKNOWN: Email Template Manager:  No valid recipients are selected, can not send emails.
04/03/2013 9:42 pm > UNKNOWN: Email Gateway Error (SendmailGateway): Sender email address cannot be empty.
04/03/2013 9:42 pm > UNKNOWN: Email Template Manager:  Xpath query {/data/responses/entry/name} did not return any results, skipping. 
04/03/2013 9:42 pm > UNKNOWN: Email Template Manager:  Xpath query {/data/responses/entry/email} did not return any results, skipping. 
04/03/2013 9:42 pm > UNKNOWN: Email Template Manager:  Recipient is empty, skipping.
04/03/2013 9:42 pm > UNKNOWN: Email Template Manager:  No valid recipients are selected, can not send emails.
04/03/2013 9:56 pm > UNKNOWN: Email Gateway Error (SendmailGateway): Sender email address cannot be empty.
04/03/2013 9:56 pm > UNKNOWN: Email Template Manager:  Xpath query {/data/responses/entry/email} did not return any results, skipping. 
04/03/2013 9:56 pm > UNKNOWN: Email Template Manager:  Recipient is empty, skipping.
04/03/2013 9:56 pm > UNKNOWN: Email Template Manager:  No valid recipients are selected, can not send emails.

Is this test_1 (Image_1.png from above) or test_2?

Can you please post the configuration as well?

Well, for a start, your datasource is called response and not responses.

OK everything to start: Symphony 2.3

3.1.1 Setting up the section

(Image First Step.png)

To store all requests, we will create a section called 'Responses'. Add three fields to this section: Name (text-input, required), Email (text-input, email, required) and Body (textarea).

3.1.2 Setting up the datasources

(Image Second Step.png)

Because we want our email to the author to contain pieces of the response, we will have to create a new datasource called 'Responses' that gets its information from the 'Responses' section. At this moment, this datasource will return all responses ever created. This is not what we want - we want to only load the response we are emailing the author about.

To do this, the ETM has a parameter you can use to filter your datasource: $etm-entry-id, this will contain the entry id of the entry created by the event. You can filter your datasource using this parameter (remember to filter by System ID).

In the email, we want to include the body, the email address and the name of the response, so include those in your Included Elements selectbox.

3.1.3 Setting up the first template settings (notification)

(Image Third Step.png)

Now that we have created our section and our datasource, we can use this data to create a nice-looking email. To do this, create a new Email Template (Blueprints->Email Templates->Create New).

This first email will be sent to the author, and will notify the author of a new response created. A nice name for this template can be 'Response-Notification'.

Next, select your 'Responses' datasource we created before in the Datasources selectbox.

To keep things simple, select Plain only in the Layouts dropdown menu. If you want, you can also create a HTML template here, all the concepts are the same.

Now for the interesting part. In the normal "Send Notification Email" filter, the subject would be predefined and static. With the ETM, you can set your own subject, and it can be dynamic, too. To see what happens, use A new response has been posted by {/data/responses/entry/name} as your subject. In this example, we have used the recipients name in the subject, creating a subject like: A new response has been posted by Huib Keemink, cool eh?

Next, in the Recipients box, you can type the username of an author in Symphony. In my installation this is huib, but it can be anything that you have set. For more information about how to use the Recipients box, please look at section 2.2 of this manual.

We have now setup all required settings for the Template, but there are two options left: Reply-To Name and Reply-To Email Address. To make replying extra easy, we can set these to contain the visitor's name and email. To do this, simply use {/data/responses/entry/name} in the Reply-To Name field, and {/data/responses/entry/email} in the Reply-To Email Address field.

3.1.4 Setting up the second template settings (thank you message)

(Image Fourth Step.png)

First, create a new email template, and name it Response Thankyou. For this template, we can do pretty much all you want, the only thing that is really important is the recipients setting. Because we want this template to be sent to the sender of the form, we can use some XPath to select the email from the event.

The ETM does not directly include the POST data in the event XML, so {/data/events/eventname/post-data} will not work.

However, since we have already filtered the Responses datasource to only display this piece of information, we can use that. So, in the recipients pane, type: {/data/responses/entry/name} <{/data/responses/entry/email}>.

3.1.5 Setting up the event

(Image Fifth Step.png)

Ok, so we have setup our section, our datasource and our template, let's make it work!

In the event editor, select your templates in the list of event filters (they will be named Send Email Template: Response-Notification and Send Email Template: Response Thankyou). Now we are nearly done setting everything up, all we need to do is attach the event to a page and include the form (as usual).

3.1.6 Setting up the event

(Image Sixth Step.png)

Attach DS and Event to Page

3.1.7 small success with symphony 3.2 (old Version)

<?xml version="1.0" encoding="utf-8" ?>
<data>
  <params>
    <today>2013-04-04</today>
    <current-time>00:38</current-time>
    <this-year>2013</this-year>
    <this-month>04</this-month>
    <this-day>04</this-day>
    <timezone>+02:00</timezone>
    <website-name>Symphony CMS</website-name>
    <page-title>Homepage</page-title>
    <root>http://action2.test.ch</root>
    <workspace>http://action2.test.ch/workspace</workspace>
    <root-page>homepage</root-page>
    <current-page>homepage</current-page>
    <current-page-id>66</current-page-id>
    <current-path>/index.php</current-path>
    <parent-path>/</parent-path>
    <current-query-string>?debug</current-query-string>
    <current-url>http://action2.test.ch/index.php</current-url>
    <upload-limit>5242880</upload-limit>
    <symphony-version>2.3</symphony-version>
    <cookie-username>test</cookie-username>
    <cookie-pass>eda22ea8ab2e672f83ed75ba7fc24e373c273b66</cookie-pass>
    <site-mode>live</site-mode>
    <etm-entry-id>11</etm-entry-id>
  </params>
  <events>
    <response id="11" result="success" type="created">
      <filter name="etm-response-notification" status="passed" total="1" sent="1" />
      <filter name="etm-response-thankyou" status="passed" total="1" sent="1" />
      <message>Entry created successfully.</message>
      <post-values>
        <name>herr test</name>
        <email>test@test.de</email>
        <body>testtest</body>
      </post-values>
    </response>
  </events>
  <logged-in-author>
    <author id="1" user-type="developer" primary-account="yes">
      <username>test</username>
    </author>
  </logged-in-author>
  <navigation>
    <page handle="homepage" id="66">
      <name>Homepage</name>
      <types>
        <type>index</type>
      </types>
    </page>
    <page handle="rss" id="67">
      <name>RSS</name>
      <types>
        <type>hidden</type>
        <type>XML</type>
      </types>
    </page>
    <page handle="maintenance" id="75">
      <name>Maintenance</name>
      <types>
        <type>hidden</type>
        <type>maintenance</type>
      </types>
    </page>
    <page handle="page-not-found" id="76">
      <name>Page Not Found</name>
      <types>
        <type>404</type>
        <type>hidden</type>
      </types>
    </page>
  </navigation>
  <responses>
    <section id="7" handle="responses">Responses</section>
    <entry id="11">
      <name handle="herr-test">herr test</name>
      <email handle="test-testde">test@test.de</email>
      <body>testtest</body>
    </entry>
  </responses>
  <website-owner>
    <author id="1" user-type="developer" primary-account="yes">
      <name>test muster</name>
      <username>test</username>
    </author>
  </website-owner>
</data>

3.1.8 symphony 2.3.1 / 2.3.2 error (same parameters same server different symphony version)

<?xml version="1.0" encoding="utf-8" ?>
<data>
    <params>
        <today>2013-04-04</today>
        <current-time>00:41</current-time>
        <this-year>2013</this-year>
        <this-month>04</this-month>
        <this-day>04</this-day>
        <timezone>+02:00</timezone>
        <website-name>Symphony CMS</website-name>
        <page-title>Homepage</page-title>
        <root>http://action.test.ch</root>
        <workspace>http://action.test.ch/workspace</workspace>
        <root-page>homepage</root-page>
        <current-page>homepage</current-page>
        <current-page-id>66</current-page-id>
        <current-path>/</current-path>
        <parent-path>/</parent-path>
        <current-query-string><![CDATA[?debug]]></current-query-string>
        <current-url>http://action.test.ch</current-url>
        <upload-limit>5242880</upload-limit>
        <symphony-version>2.3.2</symphony-version>
        <cookie-username>test</cookie-username>
        <cookie-pass>PBKDF2v1|10000|dfba1bfe2466a860c099|9q5UkSmDqKZpKSFPD6ZXcQhNHR9PkpsviHX7M3r6FD/p4cuqFVSWng==</cookie-pass>
        <page-types>
            <item handle="index">index</item>
        </page-types>
        <site-mode>live</site-mode>
        <etm-entry-id>12</etm-entry-id>
    </params>
    <events>
        <response result="success" type="created" id="12">
            <message>Entry created successfully.</message>
            <filter name="etm-response-notification" status="failed">Sender email address cannot be empty.</filter>
            <filter name="etm-response-thankyou" status="failed">Sender email address cannot be empty.</filter>
            <post-values>
                <name>Hans Test</name>
                <email>test@test.de</email>
                <body>gaga alla</body>
            </post-values>
        </response>
    </events>
    <logged-in-author>
        <author id="1" user-type="developer" primary-account="yes">
            <username>test</username>
        </author>
    </logged-in-author>
    <navigation>
        <page handle="homepage" id="66">
            <name>Homepage</name>
            <types>
                <type>index</type>
            </types>
        </page>
        <page handle="rss" id="67">
            <name>RSS</name>
            <types>
                <type>hidden</type>
                <type>XML</type>
            </types>
        </page>
        <page handle="maintenance" id="75">
            <name>Maintenance</name>
            <types>
                <type>hidden</type>
                <type>maintenance</type>
            </types>
        </page>
        <page handle="page-not-found" id="76">
            <name>Page Not Found</name>
            <types>
                <type>404</type>
                <type>hidden</type>
            </types>
        </page>
    </navigation>
    <responses>
        <section id="7" handle="responses">Responses</section>
        <entry id="12">
            <name handle="hans-test">Hans Test</name>
            <email handle="test-testde">test@test.de</email>
            <body><![CDATA[gaga alla]]></body>
        </entry>
    </responses>
    <website-owner>
        <author id="1" user-type="developer" primary-account="yes">
            <name>Test User</name>
            <username>test</username>
        </author>
    </website-owner>
</data>
Attachments:
Sixth Step.png, Fifth Step.png, Fourth Step.png, Third Step.png, Second Step.png and First Step.png

In Step 1, you shoud enforce a valid email address (using the field's validator).

In Step 3, are you really sure that you have an author in Symphony called test?

Step 6: You don't need to attach the datasource to the page for sending emails. ETM will resolve the datasource independently.

Please double-check everything for typos. I verified that ETM is sending emails in Symphony 2.3 if everything is correct. It works with authors' usernames as well as with XPath queries. However, the XPath must return a valid email address. This is the point which was a bit difficult for me, because for some reason the ?debug view of email templates is broken in Symphony 2.3. (I will file an issue on GitHub for that.)

So please go step by step:

  • Forget the Reply-To for the moment. (ETM is sending emails even if this email address is missing.)
  • Try a static, valid email address first.
  • Next, try a "dynamic" address (XPath)
  • Try an author's username

[EDIT]: I have been using 2.3.2 RC1 for testing. I will update soon.

Oh, i forgot: What is your exact Symphony 2.3 version? Is it 2.3.2?

At the moment i have a working Setup with Symphony 2.3 every thing works like a charm.

Step 1 i know i correct that.

Step 3 jep after x-hours of testing i have installed a test space with the user test :-)

this testspace uses symphony 2.3 and with this test space everything works fine! after this success i made a new testspace with symphony 2.3.2 and the same setup doesn't work :-(

It must work with 2.3.2. I tested the official release as well as the current integration branch.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details