E-Mails

E-Mail Templates

You can find all of the standard templates used in Shopware under Configuration > E-Mail management > Email templates.

Surface

 

Templates (1)

All of the templates are listed on the left side. You can edit your status emails and system emails or create your own personalized templates.

Editing templates (2)

Enter the main settings here, such as subject, sender and the content of the email itself. Some templates send HTML by default. When both plain text and HTML are used, be sure to adjust the settings of both templates. When sending in HTML, the plain text template is automatically sent as well.

Optional: attachment can also be sent via email.

Variable information (3)

Variable information can be found on the right side. On the sidebar to the right, you will find Variable information, which allows you to view all of Smarty variables available for your templates. If the email is sent to a production environment, this view can be filled automatically with the most current data. In doing so, you can directly see the variable name and respective content. Please note that the available variables will only appear using the email template once.

Smarty information / examples

  • |fill:4: fills 4 blanks
  • |padding:8: 8 blanks spacing
  • |wordwrap:49: Pagination after 49 characters
  • |indent:5: 5 indented characters
  • |nl2br: Takes breaks into account when sending in text format (e.g. {config|nl2br name=bankAccount})

Meaning of the separate templates

State Emails

Payment state

Here you may define templates for the different states of payment transactions. These will be used when changing the state of a payment in an order.

StatusExplanation
Partially invoicedOnly some positions of the order were put up for invoice
Completely invoicedThe whole order was put up for invoice
Partially paidThe customer paid parts of the invoice
1st ReminderThe customer is reminded of his payment for the first time
EncashmentThe claim was handed to an encashment company
3rd ReminderThe customer is reminded of his payment for the third time
2nd ReminderThe customer is reminded of his payment for the second time
Completely paidThe invoice was paid completely
OpenNo payment has occurred
ReservedArticles are reserved
DelayedThe customer will pay with a delay
Re-CreditingThe payment was recredited to the customer

Order state

Same approach as for the payment states. These templates are used when changing the state of an order.

StatusExplanation
In processThe state right after the customer finished the order
CompletedThe order was executed completely
Ready for deliveryThe order is ready for delivery
Clarification requiredThe order is put on hold due to needed clarification with the customer
Partially completedTh order is partially completed
Cancelled / RejectedThe shop-owner cancelled the order
Partially deliveredParts of the order were delivered to the customer
Completely deliveredThe whole order was delivered to the customer

Status mails will be sent in plaintext until Shopware 5.2.7, although the HTML-checkbox is checked. Since Shopware 5.2.8 status mails can also be sent in HTML.

System-E-Mails

StatusExplanation
sREGISTERCONFIRMATIONThe confirmation after a customer registered for your shop.
sORDERThe confirmation of an order.
sTELLAFRIENDThe Email send, when a customer recommends a product in your shop.
sNOSERIALSUsed for ESD articles, when no serial numbers are available.
sVOUCHERSend to the recommender, when someone buys a recommended product.
sCUSTOMERGROUPHACCPETEDConfirmation on the activation of a trader's account.
sCUSTOMERGROUPHEJECTEDDenial of a trader's account
sCANCELDQUESTIONAsking a customer on an aborted order (Cancellation Analysis)
sCANCELEDVOUCHERVoucher after aborting an order (Cancellation Analysis)
sBIRTHDAYWishing customers a Happy birthday
sARTICLESTOCKNotification for the shop owner when articles reach the minimum stock for an article
sNEWSLETTERCONFIRMATIOMConfirmation on the successful registration for the newsletter
sOPTINNEWSLETTEROpt-In for registering to a newsletter (confirmation link)
sOPTINVOTEOpt-In for placing an article rating (confirmation link)
sARTICLEAVAILABENotification to the customer on an available article
sACCPETNOTIFICATIONOpt-In for article notifications (confirmation link)
sARTICLECOMMENTReminder to the customer to rate a bought article
sCONFIRMPASSWORDCHANGEPassword Reset functionality (confirmation link)

Smarty information / examples

  • |fill:4: fills 4 empty spaces
  • |padding:8: distance of 8 spaces
  • |wordwrap:49: wordwrap after 49 characters
  • |indent:5: 5 space indentation
  • |nl2br: Considered linebreaks if using text format(E.G. {config|nl2br name=bankAccount})


Global variables from Shopware 5

Smarty-VariableDescription
{include file="string:{config name=emailheaderplain}"}Embedding plaintext header
{include file="string:{config name=emailfooterplain}"}Embedding plaintext footer
{include file="string:{config name=emailheaderhtml}"}Embedding HTML header
{include file="string:{config name=emailfooterhtml}"}Embedding HTML footer

Definition of variables here: Email settings

Available variables

Click on the arrow next to Variable Information to expand a window which displays all variables currently in use by templates.

Make sure that you only use variables which are listed in Variable information,otherwise the email template might not send.

Send test email to shop owner

Here you can send a test email. This will be sent to the designated email address of the current backend user.

Be sure to check whether your internet service provider supports the email service function.

Attachments

Here you have an overview of all attached documents from the Media Manager. Note that only current attachments are shown here.

Attachments cannot be sent with status emails.

User-Emails

StatusExplanation
sORDERSSEPAAUTHORIZATIONSEPA Mandate mailing

Tips & Tricks

Output VAT decimal places

By default, Shopware rounds the VAT in the sORDER email, for example from 7.7% to 8%. With a small adjustment to the template, you can output the two decimal places.
 


plus {$rate}% VAT {$value|currency|unescape:"htmlall"}
 

Output VAT seperatly

If you want to provide the VAT sums dynamically in your email template, you can use this snippet:

Plain text:


 
{foreach $sTaxRates as $rate => $value}
zzgl. {$rate} MwSt. {$value|currency|unescape:"htmlall"}
{/foreach} 
 

HTML mail:


 
{foreach $sTaxRates as $rate => $value}
zzgl. {$rate} MwSt. {$value|currency}
{/foreach} 
 

sCANCELEDVOUCHER got new variables in Shopware 5.2.9

In Shopware 5.2.9 the email template of sCANCELEDVOUCHER got the following new variables:


 
{$sVouchervalue}
{$sVouchervalidfrom}
{$sVouchervalidto}
{$sVoucherpercental}
 

An example could look like this:


 
..we want to give you a {$sVouchervalue} {if $sVoucherpercental == "1"}%{else}${/if} voucher...
 

sORDER got new variables in Shopware 5.2.19

In Shopware 5.2.19 the email template of sORDER got the following new variables:


 
{$sAmountNumeric}
{$sAmountNetNumeric}
 

These variables represent the numeric value of the order in gross/net.

Adjusting the order confirmation email

By opening the variable informations (1) after sending at least 1 email you can see all available variables here with their specific content:

Here you get an overview of the currently usable variables:

Because of the regular releases of Shopware it might happen, that single variables won't work anymore, the name changes or new variables will be added. We try to keep this table up to date.

Variables: Customer profileExplainationExample
$additional.user.userIDUser ID3
$additional.user.customernumbercustomernumber20005
$additional.user.salutationsalutationms
$additional.user.lastnamelastnameTest
$additional.user.firstnamefirstnameTest
$additional.user.customergroupcustomergroup keyEK
$additional.user.default_billing_address_idID of standard billing address3
$additional.user.default_shipping_address_idID of standard shipping address3
Variables: BillingaddressExplanationExample
$billingaddress.companyCompanyHamann-Media
$billingaddress.departmentDepartmentPurchasing Department
$billingaddress.salutationSalutationMr
$billingaddress.firstnameFirst nameMax
$billingaddress.lastnameLast nameMustermann
$billingaddress.streetStreetMuster Street
$billingaddress.streetnumberStreet number123
$billingaddress.zipcodeZip code12345
$billingaddress.cityCityMusterstadt
$billingaddress.phonePhone1234/987654
$billingaddress.faxFax1234/987654-3
$billingaddress.countryIDCountry ID2
$billingaddress.ustidVAT No.DE999999999
$billingaddress.text1Free text field 1Additional Free text
$billingaddress.text2Free text field 2Additional Free text
$billingaddress.text3Free text field 3Additional Free text
$billingaddress.text4Free text field 4Additional Free text
$billingaddress.text5Free text field 5Additional Free text
$billingaddress.text6Free text field 6Additional Free text
Variables: Shipping addressDescriptionExample
$shippingaddress.companyCompanyHamann-Media
$shippingaddress.departmentDepartmentPurchasing Department
$shippingaddress.salutationSalutationMr
$shippingaddress.firstnameFirst nameMax
$shippingaddress.lastnameLast nameMustermann
$shippingaddress.streetStreetMuster Street
$shippingaddress.streetnumberStreet number123
$shippingaddress.zipcodeZip code12345
$shippingaddress.cityCityMusterstadt
$shippingaddress.phonePhone1234/987654
$shippingaddress.faxFax1234/987654-3
$shippingaddress.ustidVAT No.DE999999999
$shippingaddress.text1Free text field 1Additional Free text
$shippingaddress.text2Free text field 2Additional Free text
$shippingaddress.text3Free text field 3Additional Free text
$shippingaddress.text4Free text field 4Additional Free text
$shippingaddress.text5Free text field 5Additional Free text
$shippingaddress.text6Free text field 6Additional Free text
Variables: Country (Billing address)DescriptionExample
$additional.country.countrynameCountryGermany
$additional.country.countryisoCountry (ISO)DE
$additional.country.countryareaAreaEurope
$additional.country.countryenCountry (English)GERMANY
Variables: Country (Shipping address)DescriptionExample
$additional.countryShipping.countrynameCountryGermany
$additional.countryShipping.countryisoCountry (ISO)DE
$additional.countryShipping.countryareaAreaEurope
$additional.countryShipping.countryenCountry (English)GERMANY
Variables: UserDescriptionExample
$additional.user.idUser ID15
$additional.user.emailUser emailMax.Muster@web.de
$additional.user.accountmodequick orderer1
$additional.user.paymentIDPayment ID4
$additional.user.firstloginFirst Login2008-07-21
$additional.user.lastloginLast Login2008-08-26 16:38:45
$additional.user.sessionIDSession ID58vvd9b859734bm9teh7voun58etrlb2u8
$additional.user.customergroupCustomer groupEK
$additional.user.languageLanguagede
Variables: PaymentDescriptionExample
$additional.payment.namePayment nameinvoice
$additional.payment.descriptionPayment descriptioninvoice
$additional.payment.templateUsed templateinvoice.tpl
$additional.payment.classUsed classesinvoice.php
$additional.payment.table  
$additional.payment.additionaldescriptionAdditional descriptionThe safer, easier way to pay.
$additional.payment.debit_percent  
$additional.payment.surcharge  
$additional.payment.active  
$additional.payment.esdactive  
$additional.payment.embediframe  
$additional.payment.hideprospect  
Variables: Item (cart position)DescriptionExample
$details.idArticle ID1
$details.sessionIDSession8d9f3a90571553dcf6118d5c907eb599
$details.userIDCustomer ID23
$details.articlenameArticle nameMy Article
$details.ordernumberOrder numberSW2331
$details.shippingfreeFree shipping0=no 1=yes
$details.quantityQuantity3
$details.pricePrice5,00
$details.netpriceNet price4.2016806723
$details.datumDate2009-07-01 14:28:48
$details.modusMode 
$details.esdarticleDownload article0=no 1=yes
$details.partnerIDPartner IDTest partner
$details.lastviewportLast viewportsale
$details.currencyFactorCurrency factor1
$details.ob_attr1 to .ob_attr6Free Attributes (Cart attribute) 
$details.packunitPack unitPiece(s)
$details.minpurchaseMin. purchase1
$details.taxIDTax ID1
$details.instockIn stock7
$details.maxpurchaseMax purchase1000
$details.purchasestepsPurchase steps1
$details.purchaseunitPurchase unitLiters
$details.laststockSale0=no 1=yes
$details.shippingtimeShipping time1-3
$details.releasedateRelease date 
$details.stockminMin. stock1
$details.itemUnitReference unit1000 Pcs. for 5 €
$details.amountAmount5.00
$details.amountnetNet amount4.20
$details.image.src.1Image Linkhttp://www.meinshop.de/images/articles/d016e13df87e_1.jpg
Variables: ShippingDescriptionExample
$sDispatch.nameDispatch nameDHL
$sDispatch.descriptionDispatch descriptionShipping by DHL
Variables: OthersDescriptionExample
$sBookingIDTransaction ID100c6f49bc
$sOrderNumberOrder number2500
$sOrderDayOrder date13.02.2010
$sOrderTimeOrder time14:37

Plain text submission of the order confirmation email

Always use absolute links starting with http://... or https://... for integrating images.


 
    {include file="string:{config name=emailheaderplain}"}
 
    Hello {$billingaddress.firstname} {$billingaddress.lastname},
 
    Thank you for your order in the Shopware demo shop (Order number: {$sOrderNumber}) at {$sOrderDay}, {$sOrderTime}.
    Informations to your order:
 
    Pos. Item Nr.              Qty.         Price        Sum
    {foreach item=details key=position from=$sOrderDetails}
    {$position+1|fill:4} {$details.ordernumber|fill:20} {$details.quantity|fill:6} {$details.price|padding:8} EUR {$details.amount|padding:8} EUR
    {$details.articlename|wordwrap:49|indent:5}
    {/foreach}
 
    Shipping costs: {$sShippingCosts}
    Total Net: {$sAmountNet}
    {if !$sNet}
    {foreach $sTaxRates as $rate => $value}
    plus {$rate} VAT {$value|currency}
    {/foreach}
    Total gross: {$sAmount}
    {/if}
 
    chosen Payment mean: {$additional.payment.description}
    {$additional.payment.additionaldescription}
    {if $additional.payment.name == "debit"}
    Your banking information:
    Account: {$sPaymentTable.account}
    Bank code number: {$sPaymentTable.bankcode}
    Bank name: {$sPaymentTable.bankname}
    Account holder: {$sPaymentTable.bankholder}
 
    We will draft the amount in the next days.
    {/if}
    {if $additional.payment.name == "prepayment"}
    Our banking information:
    {config name=bankAccount}
    {/if}
 
    {if $sComment}
    Your comment:
    {$sComment}
    {/if}
 
    Billing adress:
    {$billingaddress.company}
    {$billingaddress.firstname} {$billingaddress.lastname}
    {$billingaddress.street} {$billingaddress.streetnumber}
    {$billingaddress.zipcode} {$billingaddress.city}
    {$billingaddress.phone}
    {$additional.country.countryname}
 
    Shipping adress:
    {$shippingaddress.company}
    {$shippingaddress.firstname} {$shippingaddress.lastname}
    {$shippingaddress.street} {$shippingaddress.streetnumber}
    {$shippingaddress.zipcode} {$shippingaddress.city}
    {$additional.country.countryname}
 
    {if $billingaddress.ustid}
    Your VAT-ID: {$billingaddress.ustid}
    Upon a successful VAT ID check, and provided that you're ordering from a VAT-free country,
    you will receive your goods exempt from VAT.
    {/if}
 
 
    For further inquiries please contact us at any time. You can reach us as follows:
 
    We wish you a nice day.
 
    {include file="string:{config name=emailfooterplain}"}

Template for an order confirmation email in HTML format

Always use complete links starting with http://... or https://... for integrating images.


 
    <div style="font-family:arial; font-size:12px;">
        {include file="string:{config name=emailheaderhtml}"}
 
 
 
        <p>Hello {$billingaddress.firstname} {$billingaddress.lastname},<br/><br/>
 
            Thank you for your order from {$sConfig.sSHOPNAME} (Number: {$sOrderNumber}) at {$sOrderDay}, {$sOrderTime}.
            <br/>
            <br/>
            <strong>Informations to your order:</strong></p>
        <table width="80%" border="0" style="font-family:Arial, Helvetica, sans-serif; font-size:10px;">
            <tr>
                <td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Item</strong></td>
                <td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Pos.</strong></td>
                <td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Item-No.</strong></td>
                <td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Qty.</strong></td>
                <td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Price</strong></td>
                <td bgcolor="#F7F7F2" style="border-bottom:1px solid #cccccc;"><strong>Sum</strong></td>
            </tr>
 
            {foreach item=details key=position from=$sOrderDetails}
            <tr>
                <td rowspan="2" style="border-bottom:1px solid #cccccc;">{if $details.image.src.1}<img src="{$details.image.src.1}" alt="{$details.articlename}" />{else} {/if}</td>
                <td>{$position+1|fill:4} </td>
                <td>{$details.ordernumber|fill:20}</td>
                <td>{$details.quantity|fill:6}</td>
                <td>{$details.price|padding:8}{$sCurrency}</td>
                <td>{$details.amount|padding:8} {$sCurrency}</td>
            </tr>
            <tr>
                <td colspan="5" style="border-bottom:1px solid #cccccc;">{$details.articlename|wordwrap:80|indent:4}</td>
            </tr>
            {/foreach}
 
        </table>
 
        <p>
            <br/>
            <br/>
            Shipping costs: {$sShippingCosts}<br/>
            Total Net: {$sAmountNet}<br/>
            {if !$sNet}
            {foreach $sTaxRates as $rate => $value}
            plus {$rate} VAT {$value|currency}
 
            {/foreach}
            Total gross: {$sAmount}<br/>
            {/if}
            <br/>
            <br/>
            <strong>chosen payment method:</strong> {$additional.payment.description}<br/>
            {$additional.payment.additionaldescription}
            {if $additional.payment.name == "debit"}
            Your banking information:<br/>
            Account: {$sPaymentTable.account}<br/>
            Bank code number: {$sPaymentTable.bankcode}<br/>
            Bank name: {$sPaymentTable.bankname}<br/>
            Account holder: {$sPaymentTable.bankholder}<br/><br/>
            We will draft the amount in the next days.<br/>
            {/if}
            <br/>
            <br/>
            {if $additional.payment.name == "prepayment"}
  	    Our banking information:
            {config|nl2br name=bankAccount}
            {/if}
            <br/>
            <br/>
            <strong>Chosen Dispatch:</strong> {$sDispatch.name}<br/>{$sDispatch.description}
        </p>
        <p>
            {if $sComment}
            <strong>>Your Comment:</strong><br/>
            {$sComment}<br/>
            {/if}
            <br/>
            <br/>
            <strong>Billing adress:</strong><br/>
            {$billingaddress.company}<br/>
            {$billingaddress.firstname} {$billingaddress.lastname}<br/>
            {$billingaddress.street} {$billingaddress.streetnumber}<br/>
            {$billingaddress.zipcode} {$billingaddress.city}<br/>
            {$billingaddress.phone}<br/>
            {$additional.country.countryname}<br/>
            <br/>
            <br/>
            <strong>Shipping adress:</strong><br/>
            {$shippingaddress.company}<br/>
            {$shippingaddress.firstname} {$shippingaddress.lastname}<br/>
            {$shippingaddress.street} {$shippingaddress.streetnumber}<br/>
            {$shippingaddress.zipcode} {$shippingaddress.city}<br/>
            {$additional.countryShipping.countryname}<br/>
            <br/>
            {if $billingaddress.ustid}
            Your VAT-ID: {$billingaddress.ustid}<br/>
            Upon successful VAT-ID testing and you're ordering from a VAT-free country,<br/>
            you will receive your goods exempt from VAT.<br/>
            {/if}
            <br/>
            <br/>
            For further inquiries please contact us at any time. You can reach us as follows: <br/>
            <br/>
            <br/>
            {include file="string:{config name=emailfooterhtml}"}
        </p>
    </div>

Sending attachments with emails

With shop specific attachments it's possible to add an attachment depending on the shop. This way it's possible to attach something in the language of the subshop.

Switch to the tab Attachments (1) and then click on Add own file(s) (2)

Now upload the desired document into the Media Manager. After the document has been uploaded, you need to drag and drop the desired (speech) then click Subshop assign (1) and finally Save Change (2).

Why hasn't an email been sent?

Please make sure that in your email template the sender's name does not contain any special characters such as a ":". These characters cannot be used here.

Tips & Tricks

Display VAT in the order confirmation mail

To display the VAT you can use the following code in your mails:

Plaintext:


 
{foreach key=taxRate item=taxValue from=$sTaxRates}
  {$taxRate} % VAT: {$taxValue} {$sCurrency}
{/foreach}
 

HTML:


 
{foreach key=taxRate item=taxValue from=$sTaxRates}
  {$taxRate} % VAT: {$taxValue} {$sCurrency}<br/>
{/foreach}
 

Add payment depending text

If you want to implement a individual block for the chosen paymentmean, you can add this using Smarty:


 
{if $additional.payment.name =="Paypal"}
  //Your content
  ...
{else}
  //Your content
  ...
{/if}
 

You can also append this by using {elseif}:


 
{if $additional.payment.name =="Paypal"}
  //Your content
  ...
{elseif $additional.payment.name =="creditcard"}
  //Your content
  ...
{elseif $additional.payment.name =="prepayment"}
  //Your content
  ...
{/if}
 



 

E-Mail Log

As of Shopware 5.6.0, it is possible to log e-mails sent by Shopware. This gives you the possibility to see when which e-mails were sent.
You can find the module under Configuration > E-mail Management > E-Mail Log.

In order not to increase the storage space consumption, when saving a new log
entry, only a reference is stored for each sent attachment. If you use
template-specific attachments, it may happen that the referenced media file is
updated. As a result, the updated file will be used as attachment when
resending in this case.

Log


The Log tab lists all e-mails logged by the module (1). Since this can become quite a large amount over time, you can display filters on the left side (2) that you can use to restrict the emails displayed.

Configuration


In order to use logging, it is first necessary to activate it (1).

In addition, you can define here how long the mails should be stored in the log (2).
To delete the mails automatically after the specified time, it is necessary to execute the supplied cronjob "Remove old mail log entries". You can find more information about setting up cronjobs in this documentation.

It is also possible to exclude certain mail types from logging (3).
Technical mails include, for example, test mails sent by the shop manager via the template module or error messages if the sending via mail is active.

Mailer

In cases where Shopware is not installed on Unix and Linux systems, sending mail does not work without further configuration. The PHP function "mail()", i.e. sending mail directly via the PHP web server, for example, is generally not supported.

The function mailer defines in which way an email generated in the store will be sent. By default, mail is entered here for the standard mail function (php mailer) of the web server.

Configuration options

Sending method

At this point the method for sending the e-mail is selected. The default setting is "Mail". SMTP stands for "Simple Mail Transfer Protocol". The sending method represents the actual transmission path. On Unix systems both MAIL and SMTP are suitable. In some environments the type FILE can also be used. MAIL relies on a web server function which is only used on Unix and Linux based systems. SMTP, on the other hand, requires a mail provider that must be accessible locally or over the Internet. The FILE type stores the send request as a file and requires a third party application to process this file.

When sending via SMTP, many settings have to be clarified with your hoster or e-mail provider in advance. E.g. which port is used, if only encrypted sending (TLS,SSL) is required etc.
In case of problems with SMTP we recommend to check the logfile of your mail server. Here you will find detailed clues regarding possible errors in the configuration of the mailer settings.

Options: Mail, SMTP, File

Hostname to use in the Message-ID

The ID is received in the header. This is a HELO string. It should be the Fully-Qualified Host Name to save the recipient server from resolving the IP address. The entry is required when sending via a mail provider or mail server.

If the field is left blank the content of SERVER_NAME is output in the format [localhost.localdomain].

Mail host

The hostname plays an essential role in anti-spam measures nowadays. The hostname should always cooperate with the SMTP host. Your customer's receiving server, for example, checks whether the host server and SMTP server point to the same e-mail server and also whether they are reachable. If one of these criteria does not apply, your e-mails may already be defined as spam mail and blocked. By default localhost is specified. Another port can be specified by entering the format [hostname:port], e.g. smtp.example.com:25. In most cases port 25 can be used. Many mail providers also support port 587 (see also Default Port).

Default port

The server port is specified here. For the SMTP dispatch usually the port 25 is used. However, if you use AOL or Gmail for sending, you must enter the port required there (e.g. 587).

Connection prefix

Selection of the encryption protocol for secure data transmission. You can choose between Secure Sockets Layer (SSL) and Transport Layer Security (TLS).

The secured connection means a "tunnel connection" to the SMTP server. The messages that flow through this channel are thus protected from access by third parties. However, this option is not the same as an encrypted transmission, because the messages are not encrypted within this tunnel with this protocol. If your provider expects an SLS or TLS connection, you enter the prefix "ssl" or "tls" here.

Options: ssl, tls

SMTP username

You know your SMTP user name from the setup of your e-mail program. Enter your username or login name (this can also be your own e-mail address - depending on the e-mail provider you use) and your password.

SMTP password

Enter the password for your e-mail account here. This is usually the same password you use to log in with your email program or web client.

connection auth

Here the SMTP authentication method is selected. "Plain" transmits the data unencrypted, only base64 encoded. "Login" has the same functionality as "plain", but transmits in two steps. "crammd5" denotes the Challenge-Response Authentication Mechanism, Message Digest 5 and encrypts using the MD5 HMAC algorithm.

Options: plain, login, crammd5

sending Mails via SMTP

Message encoding

The information you send to your provider is encoded,not encrypted. The encoding defines the character - set - depth and also enables the possibility to send something as text in the email. This function is managed by RFC 1341 and RFC 2045. This 8bitencoding is supported by the most providers and is very universal. However, the provider must be informed as to how Shopware transfers the message. So if you use 8-bit message encoding, you can send attachments without complications.

Sending emails via provider (SMTP)

If Shopware isn't installed on a Unix or Linux system, the email transfer won't work without first being configured. The php function "mail()", which sends emails directly over the web server, is not supported.

Shopware supports alternative possibilities to send emails. The mostly important way is linking to an email provider, which we will discuss here.

Some configurations need to be clarified by your host or email provider.

Method for sending emails

The sending method represents the way to transfer messages. On Unix systems, MAIL and SMTP work well. In some environments you can use the type FILE. MAIL uses a web server function, which is only available on Unix and Linux-based systems. SMTP, on the other hand, always requires an email provider, which is accessible locally or via the Internet. The FILE type saves the dispatch order as a file and requires a third-party application to execute them.

Mail host

If we use an email provider, we have to use the field "SMTP Host" to input the provider. In the most cases this is the domain name, but only without "www." in front of it. For example: If you configured "www.my-shop.com" you would use "my-shop.com" or "mail.my-shop.com". In many cases it's also useful to enter the IP address. Please take a look in the documentation from your provider or in your personal mail configuration to for the proper values.

Host name

From where we stand the host name is very important in terms of spam protection. The host name should basically match with the mail host. The receiving server of your customer, for example, checks whether the host name and SMTP host refer to each other and are accessible. Is one of these conditions is not true, the server may define your mail as spam and/or block it.

Port

SMTP usually uses port 25. If you use e.g., AOL or Google Mail as a provider, you must enter the required port here (e.g., 465 or 587). For additional information, contact your SMTP provider.

Connection prefix

These messages are safe from unauthorized access, but it's not the same as an encrypted transfer, because the message in the tunnel won't be encrypted. If your provider requires SLS or TLS, enter "ssl" or "tls" here.

Connection authentication

The transfer of the login information based on RFC 2822 and RFC 4954 are normally handled via "Login". This is somewhat safer than the standard method, but it is not completely secure. If your SMTP provider supports CramMD5 (RFC 2195), you should configure this method.

SMTP username / SMTP password

Simply enter your user name and password from your email provider here (depending on the provider, this may be the email address itself).

Known Hosters - Examples SMTP-Settings

1und1

updated: 8.12.2014

  • Sending method: smtp
  • Message ID hostname:
  • Mail host: smtp.1und1.de
  • Default port: 587
  • Connection prefix: tls
  • SMTP username: E-Mail-Address of the SMTP-Accounts
  • SMTP password: Password of the SMTP-Account
  • Connection auth: login

Google Mail

updated: 12.12.2016

  • Sending method: smtp
  • Message ID hostname:
  • Mail host: smtp.gmail.com
  • Default port: 587
  • 'Connection prefix: tls
  • SMTP username: Gmail Adresse
  • SMTP password: Password of the Gmail-Account
  • Connection auth: login

Hosteurope

updated: 12.12.2016

  • Sending method:' smtp
  • Message ID hostname:
  • Mail host: Adress of the SMTP-Server of Hosteurope
  • Default port: 25
  • Connection prefix:
  • SMTP username: username of the SMTP-Account
  • SMTP password: Password of the SMTP-Account
  • Connection auth: login

Timme Hosting

updated: 31.10.2019

  • Sending method: smtp
  • Message ID hostname:
  • Mail host: Ihr SMTP-Server von Timme
  • Default port: 587
  • Connection prefix: tls
  • SMTP username: username of the SMTP-Account
  • SMTP password: Password of the SMTP-Account
  • Connection auth: login

AIXPRO

Stand: 27.03.2018

  • Sending method: smtp
  • Message ID hostname:
  • Mail host: localhost
  • Default port: 25
  • Connection prefix:
  • SMTP username: username of the SMTP-Account
  • SMTP password: Password of the SMTP-Account
  • Connection auth: plain

Mail sending as file

The information provided here was tested at the time of publishing this article, but may have changed in the meantime. The execution of this tutorial is at your own risk! Make a backup before you start, so that you can restore it in case of doubt. Note that this is a customization of Shopware and the content of this tutorial is therefore not officially supported!

To enable mail sending as a file in the mailer settings, config.php must be extended accordingly:


 
 'mail' => array(
        'type' => 'file',
        'path' => $this->DocPath('mails')
 )
 

Create a folder with sufficient rights named mails in the Shopware directory. In this folder you will find all emails sent by Shopware.

Now you have to define in the mailer settings that you want to use the method "file" to send the e-mail.

To do this, go to Confiugration > Basic settings > Shop settings > Mailers and enter "file" for the sending method.

Change sender address of the order confirmation

You can change the sender directly in the order confirmation email template.

To do this, proceed as follows in the administration:

Configuration > E-mail management > Email templates > System emails > sORDER > Sender.

There you can change the sender with e-mail address as well as name (also for the subshops).

E-Mail Settings

In this article we will show you where to change settings related to your shop's email traffic. Go to Settings > Basic configuration > Frontend > Email settings to edit them. Emails will normally be sent to the shop owner's email address, which is configured in Configuration > Basic settings.

Configuration

  • Disable order confirmation to shop owner: Activate if you want to receive a copy of the order confirmation mail. By default this option is set to "No".
  • Send registration confirmation to shop owner in CC: If you want to receive a CC of the registration confirmation, activate this setting. By default this option is set to "Yes".
  • Order status - Changes to CC addresses: Put additional email addresses that will receive a copy of status-change mails. Keep in mind that all recipients are going to be able to see the other email addresses included in this conversation.
  • Email header plaintext: Enter an email header for your plaintext emails.
  • Email footer plaintext: Enter an email footer line that will be displayed in your plaintext emails.
  • Email header HTML: Enter an email header line that will be displayed in your HTML emails.
  • Email footer HTML: Enter an email footer line that will be displayed in your HTML emails.

Email header and footer can be used in all email templates by utilizing the following code: {include file="string:{config name=emailheaderplain}"} - Swap header and footer as well as plain and html to customize the settings according to your needs.

Hint: You can use your shop logo from any viewport in your headers (as long as you have it stored in the theme) and don't have to use the desktop logo, so the picture gets smaller and you save traffic.


// Mobile logo
<img src="{link file=$theme.mobileLogo fullPath}" alt="Logo" />

// Tablet logo
<img src="{link file=$theme.tabletLogo fullPath}" alt="Logo" />

// Tablet landscape logo
<img src="{link file=$theme.tabletLandscapeLogo fullPath}" alt="Logo" />

// Dektop logo
<img src="{link file=$theme.desktopLogo fullPath}" alt="Logo" />

No E-Mails are sent when using SMTP

If you do not use "SMTP" to send the e-mails, this article is not relevant for you.

The encryption technology TLS 1.0 from 1999 has already been discontinued in 2016 and from 30.06.2018 e-mail servers that support TLS1.0 are no longer PCI-DSS-compliant. With TLS 1.3, the current version has been available since 2018. Some e-mail hosters are now starting to disable this technology on their e-mail servers to remain PCI-DSS compliance. As a result of this change, Shopware may no longer be able to send e-mails.

Am I affected?

This change affects you only if 'all of the 3 following conditions apply:

  • You use SMTP as a shipping method in Shopware
  • You use PHP Version 5.6.30 oder 7.0.30 - 7.1.17
  • Your e-mail hoster has already deactivated TLS1.0

If you are not sure if your hoster is still using TLS1.0, you can check it here: https://de.ssl-tools.net/mailservers.

Background: The Zend library used by Shopware can only send mails with the TLS 1.0 protocol, but if the server now only supports TLS 1.1 or higher, the queries are rejected and no more e-mails are sent.

Update Shopware (recommended)

We recommend an update to at least Shopware version 5.4.5. You can get the update to 5.4.5 regularly via the Auto-Updater or directly via our download overview.

Install the plugin

If you can't update your Shopware installation (recommended), you can also do the fix via plugin:

Please check after installation if your e-mail traffic works as usual.

Was this article helpful?