Customize the email sending message
If you are looking for ways to customize the messages created automatically when sending an invoice, a reminder or a proposal by email, here are some notes from a Dolibarr user that should make your task easier:
Personalize the sending of documents by E-mail
With Dolibarr, it is possible to send the documents directly by E-mail with the Send by E-mail button. A form appears to select the recipients and an automatic message is added in the message area.
Dolibarr >= 9
- On Dolibarr versions greater than or equal to v9, it is enough to add an email template in the menu Tools - Email template.
If there are several models entered for the same context, Dolibarr will take the first one (the one with the weakest position field therefore)
Dolibarr <= 8
- On Dolibarr versions lower than v8, the predefined message is saved in the Dolibarr languages folder
/htdocs/langs/en_en/other.lang
To customize this message, you must modify the following lines:
PredefinedMailContentSendInvoice=Please find attached the invoice __FACREF__\n\nRegards\n\n
PredefinedMailContentSendInvoiceReminder=We bring to your attention that the __FACREF__ invoice does not appear to have been paid. So here it is, as a reminder, as an attachment.\n\nRegards\n\n
PredefinedMailContentSendProposal=Please find attached the commercial proposal __PROPREF__\n\nRegards\n\n
PredefinedMailContentSendOrder=Please find attached the order form __ORDERREF__\n\nRegards\n\n
PredefinedMailContentSendSupplierOrder=Please find attached our order __ORDERREF__\n\nRegards\n\n
PredefinedMailContentSendSupplierInvoice=Please find attached the invoice __FACREF__\n\nRegards\n\n
Messages can be written either in HTML or plain text. If you choose a simple text format, you must write \n to make a line break. If you prefer a message formatted in HTML, just use the standard HTML tags to format your message ((<br> : carriage return, <b>my text</b> for bold etc...)
Customize variables on a Dolibarr version
Dolibarr >= 8
Many variables can be used in your email template. Here is a non-exhaustive list.
__USER_SIGNATURE__ -> Alice - 123 __USER_LASTNAME__ ... __USER_ID__ -> 12 __USER_LOGIN__ -> admin __USER_LASTNAME__ -> Adminson __USER_FIRSTNAME__ -> Alice __USER_FULLNAME__ -> Alice Adminson __USER_SUPERVISOR_ID__ -> 2 __USER_REMOTE_IP__ -> 127.0.0.1 __MYCOMPANY_NAME__ -> MyBig Company __MYCOMPANY_EMAIL__ -> testldr10@gmail.com __MYCOMPANY_PROFID1__ -> 123456 __MYCOMPANY_PROFID2__ -> __MYCOMPANY_PROFID2__ __MYCOMPANY_PROFID3__ -> __MYCOMPANY_PROFID3__ __MYCOMPANY_PROFID4__ -> __MYCOMPANY_PROFID4__ __MYCOMPANY_PROFID5__ -> __MYCOMPANY_PROFID5__ __MYCOMPANY_PROFID6__ -> __MYCOMPANY_PROFID6__ __MYCOMPANY_CAPITAL__ -> 10001 __MYCOMPANY_FULLADDRESS__ -> 21 Jump street..ll..ee "ddddd, 75500 MyTown, France __MYCOMPANY_ADDRESS__ -> 21 Jump street..ll..ee "ddddd __MYCOMPANY_ZIP__ -> 75500 __MYCOMPANY_TOWN__ -> MyTown __MYCOMPANY_COUNTRY__ -> France __MYCOMPANY_COUNTRY_ID__ -> 1 __MYCOMPANY_CURRENCY_CODE__ -> EUR __ID__ -> __ID__ __REF__ -> __REF__ __REF_CLIENT__ -> __REF_CLIENT__ __REF_SUPPLIER__ -> __REF_SUPPLIER__ __EXTRAFIELD_XXX__ -> __EXTRAFIELD_XXX__ __THIRDPARTY_ID__ -> __THIRDPARTY_ID__ __THIRDPARTY_NAME__ -> __THIRDPARTY_NAME__ __THIRDPARTY_NAME_ALIAS__ -> __THIRDPARTY_NAME_ALIAS__ __THIRDPARTY_EMAIL__ -> __THIRDPARTY_EMAIL__ __CONTACT_NAME_ACTOR__ __CONTACT_NAME_AUTHOR__ __CONTACT_NAME_BILLING__ __CONTACT_NAME_CUSTOMER__ __CONTACT_NAME_FACTORYRESP__ __CONTACT_NAME_GUEST__ __CONTACT_NAME_INTERREPFOLL__ __CONTACT_NAME_INTERVENING__ __CONTACT_NAME_PROJECTCONTRIBUTOR__ __CONTACT_NAME_PROJECTLEADER__ __CONTACT_NAME_SALESREPFOLL__ __CONTACT_NAME_SALESREPSIGN__ __CONTACT_NAME_SERVICE__ __CONTACT_NAME_SHIPPING__ __CONTACT_NAME_TASKCONTRIBUTOR__ __CONTACT_NAME_TASKEXECUTIVE__ __CONTACT_NAME_THIRDINCHARGE__ __CONTACT_NAME_USERINCHARGE__ __CONTACT_NAME_WAREHOUSERESP__ __MEMBER_ID__ -> __MEMBER_ID__ __MEMBER_CIVILITY__ -> __MEMBER_CIVILITY__ __MEMBER_FIRSTNAME__ -> __MEMBER_FIRSTNAME__ __MEMBER_LASTNAME__ -> __MEMBER_LASTNAME__ __PROJECT_ID__ -> __PROJECT_ID__ __PROJECT_REF__ -> __PROJECT_REF__ __PROJECT_NAME__ -> __PROJECT_NAME__ __CONTRACT_HIGHEST_PLANNED_START_DATE__ -> Highest date planned for a service start __CONTRACT_HIGHEST_PLANNED_START_DATETIME__ -> Highest date and hour planned for service start __CONTRACT_LOWEST_EXPIRATION_DATE__ -> Lowest data for planned expiration of service __CONTRACT_LOWEST_EXPIRATION_DATETIME__ -> Lowest date and hour for planned expiration of service __ONLINE_PAYMENT_URL__ -> UrlToPayOnlineIfApplicable __ONLINE_PAYMENT_TEXT_AND_URL__ -> TextAndUrlToPayOnlineIfApplicable __SECUREKEYPAYMENT__ -> Security key (if key is not unique per record) __SECUREKEYPAYMENT_MEMBER__ -> Security key for payment on a member subscription (one key per member) __SECUREKEYPAYMENT_ORDER__ -> Security key for payment on an order __SECUREKEYPAYMENT_INVOICE__ -> Security key for payment on an invoice __SECUREKEYPAYMENT_CONTRACTLINE__ -> Security key for payment on a a service __DIRECTDOWNLOAD_URL_PROPOSAL__ -> Direct download url of a proposal __DIRECTDOWNLOAD_URL_ORDER__ -> Direct download url of an order __DIRECTDOWNLOAD_URL_INVOICE__ -> Direct download url of an invoice __SHIPPINGTRACKNUM__ -> Shipping tacking number __SHIPPINGTRACKNUMURL__ -> Shipping tracking url __DATE_YMD__ -> __DATE_YMD__ __DATE_DUE_YMD__ -> __DATE_DUE_YMD__ __AMOUNT__ -> __AMOUNT__ __AMOUNT_EXCL_TAX__ -> __AMOUNT_EXCL_TAX__ __AMOUNT_VAT__ -> __AMOUNT_VAT__ __AMOUNT_FORMATED__ -> __AMOUNT_FORMATED__ __AMOUNT_EXCL_TAX_FORMATED__ -> __AMOUNT_EXCL_TAX_FORMATED__ __AMOUNT_VAT_FORMATED__ -> __AMOUNT_VAT_FORMATED__ __DAY__ -> 18 __DAY_TEXT__ -> Monday __DAY_TEXT_SHORT__ -> Mo __DAY_TEXT_MIN__ -> M __MONTH__ -> 3 __MONTH_TEXT__ -> March __MONTH_TEXT_SHORT__ -> Mar __MONTH_TEXT_MIN__ -> M __YEAR__ -> 2019 __PREVIOUS_DAY__ -> 17 __PREVIOUS_MONTH__ -> 2 __PREVIOUS_YEAR__ -> 2018 __NEXT_DAY__ -> 19 __NEXT_MONTH__ -> 4 __NEXT_YEAR__ -> 2020 __ENTITY_ID__ -> 1 __DOL_MAIN_URL_ROOT__ -> http://localhostgit/dolibarr_dev/htdocs __(AnyTranslationKey)__ -> Translation __[AnyConstantKey]__ -> Value of constant
To make sure you have an up-to-date list, you can click on the "?" symbol next to the "Content" label when you create or modify your email template.
Dolibarr <= 7
When we look at the predefined messages we see that the part number is replaced by a variable __FACREF__, __ORDERREF__
To send invoices, if you want the following message:
Dear Sir,
Please find attached the invoice 2011-090
Invoice: 2011-090
Date: 27/07/2011
Amount: € 85.00
Please make the payment by bank transfer to the account whose bank details appear at the bottom of the invoice.
Sincerely
Computer 81
Computer 81 - 16, Portal Street - 81600 Gaillac - France
Phone: 05.81.31.48.00 - 06.47.94.94.52.38 - Email: contact@computer81.com
Web: www.computer81.com
So, to arrive at this result automatically, it is necessary to add the variables __FACDATE__ and __FACTOTALTTC__ To do this, we need to modify the following file:
/htdocs/compta/facture.php
do a search for "__FACREF__" in your editor and you will find the following line:
// Tableau des substitutions
$formmail->substit['__FACREF__']=$object->ref;
To add the variables insert the following 2 lines:
$formmail->substit['__FACDATE__']=date('d/m/Y',$object->date);
$formmail->substit['__FACTOTALTTC__']=number_format($object->total_ttc,2,',',' ');
You can now insert the date and amount of the invoice in your automatic message.
If you need other variables to write your message, go to the file
htdocs/compta/facture/class/facture.class.php
You will have the list of variables that you can use with the object $object For example, for the payment deadline you will find in this file the following line: var $date_lim_reglement; To use it add to your substitution table
$formmail->substit['__FACDATELIMREG__']=date('d/m/Y',$object->date_lim_reglement);