You can find all of the standard templates used in Shopware under Configuration > E-Mail management > Email templates.
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 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
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.
Status | Explanation |
---|---|
Partially invoiced | Only some positions of the order were put up for invoice |
Completely invoiced | The whole order was put up for invoice |
Partially paid | The customer paid parts of the invoice |
1st Reminder | The customer is reminded of his payment for the first time |
Encashment | The claim was handed to an encashment company |
3rd Reminder | The customer is reminded of his payment for the third time |
2nd Reminder | The customer is reminded of his payment for the second time |
Completely paid | The invoice was paid completely |
Open | No payment has occurred |
Reserved | Articles are reserved |
Delayed | The customer will pay with a delay |
Re-Crediting | The 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.
Status | Explanation |
---|---|
In process | The state right after the customer finished the order |
Completed | The order was executed completely |
Ready for delivery | The order is ready for delivery |
Clarification required | The order is put on hold due to needed clarification with the customer |
Partially completed | Th order is partially completed |
Cancelled / Rejected | The shop-owner cancelled the order |
Partially delivered | Parts of the order were delivered to the customer |
Completely delivered | The 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
Status | Explanation |
---|---|
sREGISTERCONFIRMATION | The confirmation after a customer registered for your shop. |
sORDER | The confirmation of an order. |
sTELLAFRIEND | The Email send, when a customer recommends a product in your shop. |
sNOSERIALS | Used for ESD articles, when no serial numbers are available. |
sVOUCHER | Send to the recommender, when someone buys a recommended product. |
sCUSTOMERGROUPHACCPETED | Confirmation on the activation of a trader's account. |
sCUSTOMERGROUPHEJECTED | Denial of a trader's account |
sCANCELDQUESTION | Asking a customer on an aborted order (Cancellation Analysis) |
sCANCELEDVOUCHER | Voucher after aborting an order (Cancellation Analysis) |
sBIRTHDAY | Wishing customers a Happy birthday |
sARTICLESTOCK | Notification for the shop owner when articles reach the minimum stock for an article |
sNEWSLETTERCONFIRMATIOM | Confirmation on the successful registration for the newsletter |
sOPTINNEWSLETTER | Opt-In for registering to a newsletter (confirmation link) |
sOPTINVOTE | Opt-In for placing an article rating (confirmation link) |
sARTICLEAVAILABE | Notification to the customer on an available article |
sACCPETNOTIFICATION | Opt-In for article notifications (confirmation link) |
sARTICLECOMMENT | Reminder to the customer to rate a bought article |
sCONFIRMPASSWORDCHANGE | Password Reset functionality (confirmation link) |
Smarty information / examples
Smarty-Variable | Description |
---|---|
{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
Click on the arrow next to Variable Information to expand a window that 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.
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.
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
Status | Explanation |
---|---|
sORDERSSEPAAUTHORIZATION | SEPA Mandate mailing |
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 separatly
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.
By opening the variable information (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 profile | Explanation | Example |
---|---|---|
$additional.user.userID | User ID | 3 |
$additional.user.customernumber | customernumber | 20005 |
$additional.user.salutation | salutation | ms |
$additional.user.lastname | lastname | Test |
$additional.user.firstname | firstname | Test |
$additional.user.customergroup | customergroup key | EK |
$additional.user.default_billing_address_id | ID of standard billing address | 3 |
$additional.user.default_shipping_address_id | ID of standard shipping address | 3 |
Variables: Billingaddress | Explanation | Example |
$billingaddress.company | Company | Hamann-Media |
$billingaddress.department | Department | Purchasing Department |
$billingaddress.salutation | Salutation | Mr |
$billingaddress.firstname | First name | Max |
$billingaddress.lastname | Last name | Mustermann |
$billingaddress.street | Street | Muster Street |
$billingaddress.streetnumber | Street number | 123 |
$billingaddress.zipcode | Zip code | 12345 |
$billingaddress.city | City | Musterstadt |
$billingaddress.phone | Phone | 1234/987654 |
$billingaddress.fax | Fax | 1234/987654-3 |
$billingaddress.countryID | Country ID | 2 |
$billingaddress.ustid | VAT No. | DE999999999 |
$billingaddress.text1 | Free text field 1 | Additional Free text |
$billingaddress.text2 | Free text field 2 | Additional Free text |
$billingaddress.text3 | Free text field 3 | Additional Free text |
$billingaddress.text4 | Free text field 4 | Additional Free text |
$billingaddress.text5 | Free text field 5 | Additional Free text |
$billingaddress.text6 | Free text field 6 | Additional Free text |
Variables: Shipping address | Description | Example |
$shippingaddress.company | Company | Hamann-Media |
$shippingaddress.department | Department | Purchasing Department |
$shippingaddress.salutation | Salutation | Mr |
$shippingaddress.firstname | First name | Max |
$shippingaddress.lastname | Last name | Mustermann |
$shippingaddress.street | Street | Muster Street |
$shippingaddress.streetnumber | Street number | 123 |
$shippingaddress.zipcode | Zip code | 12345 |
$shippingaddress.city | City | Musterstadt |
$shippingaddress.phone | Phone | 1234/987654 |
$shippingaddress.fax | Fax | 1234/987654-3 |
$shippingaddress.ustid | VAT No. | DE999999999 |
$shippingaddress.text1 | Free text field 1 | Additional Free text |
$shippingaddress.text2 | Free text field 2 | Additional Free text |
$shippingaddress.text3 | Free text field 3 | Additional Free text |
$shippingaddress.text4 | Free text field 4 | Additional Free text |
$shippingaddress.text5 | Free text field 5 | Additional Free text |
$shippingaddress.text6 | Free text field 6 | Additional Free text |
Variables: Country (Billing address) | Description | Example |
$additional.country.countryname | Country | Germany |
$additional.country.countryiso | Country (ISO) | DE |
$additional.country.countryarea | Area | Europe |
$additional.country.countryen | Country (English) | GERMANY |
Variables: Country (Shipping address) | Description | Example |
$additional.countryShipping.countryname | Country | Germany |
$additional.countryShipping.countryiso | Country (ISO) | DE |
$additional.countryShipping.countryarea | Area | Europe |
$additional.countryShipping.countryen | Country (English) | GERMANY |
Variables: User | Description | Example |
$additional.user.id | User ID | 15 |
$additional.user.email | User email | Max.Muster@web.de |
$additional.user.accountmode | quick orderer | 1 |
$additional.user.paymentID | Payment ID | 4 |
$additional.user.firstlogin | First Login | 2008-07-21 |
$additional.user.lastlogin | Last Login | 2008-08-26 16:38:45 |
$additional.user.sessionID | Session ID | 58vvd9b859734bm9teh7voun58etrlb2u8 |
$additional.user.customergroup | Customer group | EK |
$additional.user.language | Language | de |
Variables: Payment | Description | Example |
$additional.payment.name | Payment name | invoice |
$additional.payment.description | Payment description | invoice |
$additional.payment.template | Used template | invoice.tpl |
$additional.payment.class | Used classes | invoice.php |
$additional.payment.table | ||
$additional.payment.additionaldescription | Additional description | The 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) | Description | Example |
$details.id | Article ID | 1 |
$details.sessionID | Session | 8d9f3a90571553dcf6118d5c907eb599 |
$details.userID | Customer ID | 23 |
$details.articlename | Article name | My Article |
$details.ordernumber | Order number | SW2331 |
$details.shippingfree | Free shipping | 0=no 1=yes |
$details.quantity | Quantity | 3 |
$details.price | Price | 5,00 |
$details.netprice | Net price | 4.2016806723 |
$details.datum | Date | 2009-07-01 14:28:48 |
$details.modus | Mode | |
$details.esdarticle | Download article | 0=no 1=yes |
$details.partnerID | Partner ID | Test partner |
$details.lastviewport | Last viewport | sale |
$details.currencyFactor | Currency factor | 1 |
$details.ob_attr1 to .ob_attr6 | Free Attributes (Cart attribute) | |
$details.packunit | Pack unit | Piece(s) |
$details.minpurchase | Min. purchase | 1 |
$details.taxID | Tax ID | 1 |
$details.instock | In stock | 7 |
$details.maxpurchase | Max purchase | 1000 |
$details.purchasesteps | Purchase steps | 1 |
$details.purchaseunit | Purchase unit | Liters |
$details.laststock | Sale | 0=no 1=yes |
$details.shippingtime | Shipping time | 1-3 |
$details.releasedate | Release date | |
$details.stockmin | Min. stock | 1 |
$details.itemUnit | Reference unit | 1000 Pcs. for 5 € |
$details.amount | Amount | 5.00 |
$details.amountnet | Net amount | 4.20 |
$details.image.src.1 | Image Link | http://www.meinshop.de/images/articles/d016e13df87e_1.jpg |
Variables: Shipping | Description | Example |
$sDispatch.name | Dispatch name | DHL |
$sDispatch.description | Dispatch description | Shipping by DHL |
Variables: Others | Description | Example |
$sBookingID | Transaction ID | 100c6f49bc |
$sOrderNumber | Order number | 2500 |
$sOrderDay | Order date | 13.02.2010 |
$sOrderTime | Order time | 14: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}.
Information 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 address:
{$billingaddress.company}
{$billingaddress.firstname} {$billingaddress.lastname}
{$billingaddress.street} {$billingaddress.streetnumber}
{$billingaddress.zipcode} {$billingaddress.city}
{$billingaddress.phone}
{$additional.country.countryname}
Shipping address:
{$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>Information 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}
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.
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.
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.
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.
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
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).
1und1
updated: 8.12.2014
Google Mail
updated: 12.12.2016
Hosteurope
updated: 12.12.2016
Timme Hosting
updated: 31.10.2019
AIXPRO
Stand: 27.03.2018
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.
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).
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.
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" />
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:
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.