{"id":249,"date":"2016-03-08T14:51:27","date_gmt":"2016-03-08T11:51:27","guid":{"rendered":"http:\/\/presta.site\/blog\/?p=249"},"modified":"2016-03-09T18:58:33","modified_gmt":"2016-03-09T15:58:33","slug":"fix-prestashop-contact-form-not-sending-mails","status":"publish","type":"post","link":"https:\/\/presta.site\/blog\/en\/fix-prestashop-contact-form-not-sending-mails\/","title":{"rendered":"Fix PrestaShop contact form not sending mails."},"content":{"rendered":"<p>If you are using SMTP in your shop email configuration, then you could encounter the following problem &#8212; you are not getting e-mail notifications about new messages from contact form. And all other mails are sending fine.<\/p>\n<p><!--more--><br \/>\nIt occurs because PrestaShop is sending mails from customer&#8217;s name, but using your SMTP server and your e-mail account.<\/p>\n<p>You could contact your hosting support or your e-mail provider support, maybe they&#8217;ll offer you some solution. If not, you can fix this problem on PrestaShop level.<\/p>\n<h4>Solution:<\/h4>\n<p>1. The easiest way is sending mail via <span style=\"font-weight:bold;\">PHP mail()<\/span> functon. You can change e-mail settings in the Back Office (Advanced Parameters -> E-mail).<br \/>\n<a href=\"http:\/\/presta.site\/blog\/wp-content\/uploads\/2016\/03\/12.png\"><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/presta.site\/blog\/wp-content\/uploads\/2016\/03\/12-1024x368.png\" alt=\"1\" width=\"660\" height=\"237\" class=\"aligncenter size-large wp-image-251\" srcset=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2016\/03\/12-1024x368.png 1024w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2016\/03\/12-300x108.png 300w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2016\/03\/12-768x276.png 768w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2016\/03\/12.png 1193w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/a><br \/>\nMails sent in this way very often fall into spam. And it is very bad of course.<\/p>\n<p>2. The other way &#8212; <span style=\"font-weight:bold;\">a small code modification<\/span>.<\/p>\n<p style=\"text-align:left;\">\n<span style=\"color: #999999;\"><em>All files can be edited via FTP. File paths are relative to the site root.<\/em><\/span><br \/>\n<span style=\"color: #999999;\"><em>All changes should be implemented in the override class: \/override\/controllers\/ContactController.php<\/em><\/span>\n<\/p>\n<p>In the file \/controllers\/ContactController.php you can find the function <b>postProcess()<\/b>. And at the end of this function find the following code:<\/p>\n<div class=\"codecolorer-container php blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/><\/div><\/td><td><div class=\"php codecolorer\"><span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">Send<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">context<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">language<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'contact'<\/span><span class=\"sy0\">,<\/span> <a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">l<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Message from contact form'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">' [no_sync]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$var_list<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$contact<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">email<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$contact<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">name<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class=\"re0\">$file_attachment<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> &nbsp; &nbsp;_PS_MAIL_DIR_<span class=\"sy0\">,<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$from<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">||<\/span><br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; <span class=\"sy0\">!<\/span><a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">Send<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">context<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">language<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'contact_form'<\/span><span class=\"sy0\">,<\/span> <span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/isset\"><span class=\"kw3\">isset<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$ct<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">&amp;&amp;<\/span> Validate<span class=\"sy0\">::<\/span><span class=\"me2\">isLoadedObject<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$ct<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> ? <a href=\"http:\/\/www.php.net\/sprintf\"><span class=\"kw3\">sprintf<\/span><\/a><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">l<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Your message has been correctly sent #ct%1$s #tc%2$s'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$ct<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$ct<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">token<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">:<\/span> <a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">l<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Your message has been correctly sent'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$var_list<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$from<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$file_attachment<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> _PS_MAIL_DIR_<span class=\"sy0\">,<\/span> <span class=\"kw4\">false<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$contact<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">email<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">errors<\/span><span class=\"br0\">&#91;<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> Tools<span class=\"sy0\">::<\/span><span class=\"me2\">displayError<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'An error occurred while sending the message.'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>This code is for sending mails to a customer and to an admin. This example is given from PrestaShop 1.6, in the other versions it may be slightly different.<\/p>\n<p>You need to replace that code by the following:<\/p>\n<div class=\"codecolorer-container php blackboard\" style=\"overflow:auto;white-space:nowrap;\"><table cellspacing=\"0\" cellpadding=\"0\"><tbody><tr><td class=\"line-numbers\"><div>1<br \/>2<br \/>3<br \/>4<br \/>5<br \/>6<br \/>7<br \/>8<br \/>9<br \/>10<br \/>11<br \/>12<br \/>13<br \/>14<br \/>15<br \/>16<br \/>17<br \/>18<br \/>19<br \/>20<br \/>21<br \/>22<br \/>23<br \/>24<br \/>25<br \/>26<br \/>27<br \/>28<br \/>29<br \/>30<br \/>31<br \/>32<br \/>33<br \/>34<br \/>35<br \/><\/div><\/td><td><div class=\"php codecolorer\"><span class=\"co1\">\/\/ save the current email sending method to the variable<\/span><br \/>\n<span class=\"re0\">$ps_mail_method<\/span> <span class=\"sy0\">=<\/span> Configuration<span class=\"sy0\">::<\/span><span class=\"me2\">get<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'PS_MAIL_METHOD'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"co1\">\/\/ change email sending method to PHP mail()<\/span><br \/>\nConfiguration<span class=\"sy0\">::<\/span><span class=\"me2\">updateValue<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'PS_MAIL_METHOD'<\/span><span class=\"sy0\">,<\/span> <span class=\"st_h\">'1'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"co1\">\/\/ send email to admin<\/span><br \/>\n<span class=\"kw1\">if<\/span> <span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">Send<\/span><span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">context<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">language<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"st_h\">'contact'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">l<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Message from contact form'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">' [no_sync]'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$var_list<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$contact<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">email<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$contact<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">name<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$from<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"re0\">$customer<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id<\/span> ? <span class=\"re0\">$customer<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">firstname<\/span><span class=\"sy0\">.<\/span><span class=\"st_h\">' '<\/span><span class=\"sy0\">.<\/span><span class=\"re0\">$customer<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">lastname<\/span> <span class=\"sy0\">:<\/span> <span class=\"st_h\">''<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$file_attachment<\/span><br \/>\n<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">errors<\/span><span class=\"br0\">&#91;<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> Tools<span class=\"sy0\">::<\/span><span class=\"me2\">displayError<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'An error occurred while sending the message.'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><br \/>\n<br \/>\n<span class=\"co1\">\/\/ turn back default method<\/span><br \/>\nConfiguration<span class=\"sy0\">::<\/span><span class=\"me2\">updateValue<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'PS_MAIL_METHOD'<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$ps_mail_method<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"co1\">\/\/ send email to a customer<\/span><br \/>\n<span class=\"kw1\">if<\/span><span class=\"br0\">&#40;<\/span><span class=\"sy0\">!<\/span><a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">Send<\/span><span class=\"br0\">&#40;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">context<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">language<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"st_h\">'contact_form'<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"br0\">&#40;<\/span><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/isset\"><span class=\"kw3\">isset<\/span><\/a><span class=\"br0\">&#40;<\/span><span class=\"re0\">$ct<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">&amp;&amp;<\/span> Validate<span class=\"sy0\">::<\/span><span class=\"me2\">isLoadedObject<\/span><span class=\"br0\">&#40;<\/span><span class=\"re0\">$ct<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> ? <a href=\"http:\/\/www.php.net\/sprintf\"><span class=\"kw3\">sprintf<\/span><\/a><span class=\"br0\">&#40;<\/span><a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">l<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Your message has been correctly sent #ct%1$s #tc%2$s'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$ct<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">id<\/span><span class=\"sy0\">,<\/span> <span class=\"re0\">$ct<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">token<\/span><span class=\"br0\">&#41;<\/span> <span class=\"sy0\">:<\/span> <a href=\"http:\/\/www.php.net\/mail\"><span class=\"kw3\">Mail<\/span><\/a><span class=\"sy0\">::<\/span><span class=\"me2\">l<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'Your message has been correctly sent'<\/span><span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$var_list<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$from<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"kw4\">null<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$contact<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">email<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$contact<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">name<\/span><span class=\"sy0\">,<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$file_attachment<\/span><br \/>\n<span class=\"br0\">&#41;<\/span><span class=\"br0\">&#41;<\/span> <span class=\"br0\">&#123;<\/span><br \/>\n&nbsp; &nbsp; <span class=\"re0\">$this<\/span><span class=\"sy0\">-&gt;<\/span><span class=\"me1\">errors<\/span><span class=\"br0\">&#91;<\/span><span class=\"br0\">&#93;<\/span> <span class=\"sy0\">=<\/span> Tools<span class=\"sy0\">::<\/span><span class=\"me2\">displayError<\/span><span class=\"br0\">&#40;<\/span><span class=\"st_h\">'An error occurred while sending the message.'<\/span><span class=\"br0\">&#41;<\/span><span class=\"sy0\">;<\/span><br \/>\n<span class=\"br0\">&#125;<\/span><\/div><\/td><\/tr><\/tbody><\/table><\/div>\n<p>The main idea of these changes: we change email sending method to PHP Mail() before sending mail to admin. And then we change it back to default (SMTP) method. So, mail will be sent to customer via SMTP server and will not fall into spam, and admin will be happy enough with PHP Mail().<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you are using SMTP in your shop email configuration, then you could encounter the following problem &#8212; you are not getting e-mail notifications about new messages from contact form. And all other mails are sending fine.<\/p>\n","protected":false},"author":1,"featured_media":111,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/249"}],"collection":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/comments?post=249"}],"version-history":[{"count":16,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/249\/revisions"}],"predecessor-version":[{"id":267,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/249\/revisions\/267"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media\/111"}],"wp:attachment":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media?parent=249"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/categories?post=249"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/tags?post=249"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}