- Contact Form 7 не отправляет письма.
- Не работает contact form 7 не отправляет письма? Решение есть!
- Решение
- Первый способ (быстрый)
- Второй способ (правильный)
- WordPress.org
- Русский
- Не отображается контактная форма на сайте
- ТОП 10 причин, почему не отправляются данные из формы обратной связи
- 1. Забывают поменять адреса в демке
- 2. Используется слишком старая версия PHP
- 3. Попытка отправить данные просто открыв файл с формой в браузере
- 4. Не настроен локальный сервер
- 5. Тестовый период хостинга или бесплатный вариант
- 6. Хостер не позволяет отправлять письма с сайта на бесплатные почтовые ящики
- 7. Ошибка в путях при подключении
- 8. Блокировка входящей почты самим почтовым сервисом
- 9. Не работает PHP на сервере
- 10. Отправка писем заблокирована хостером
- Похожие публикации
- 12 комментариев
Contact Form 7 не отправляет письма.
Приветствую вас дорогие друзья!
В этой статье я вам расскажу о том, почему Contact Form 7 не отправляет письма и как решить проблему с отправкой писем для плагина Contact Form 7 и для всего WordPress сайта в целом.
На самом деле, проблема с отправкой почты для Contact Form 7 возникает очень часто. В первую очередь, это зависит от того на каком хостинге размещен ваш сайт, а так же от того, какие плагины у вас установлены. Ну и, собственно говоря, от самого плагина Contact Form 7, потому что иногда у него, все-таки, случаются глюки.
Для устранения проблемы с отправкой писем Contact form 7 нам нужно будет настроить отправку почты через SMTP. Для WordPress существует множество различных плагинов для реализации данной задачи, но я, в основном работаю с плагином WP Mail SMTP потому как он достаточно прост в настройке, и он меня еще не разу не подводил. Поэтому давайте установим этот плагин и посмотрим, как его нужно настраивать.
Копируем название плагина и переходим в админку нашего сайта. Здесь переходим в «Плагины» => «Добавить новый» и устанавливаем его так же, как и другие плагины. После его активации в разделе «Настройки» появится новый пункт, который называется «email».
- 1. Первое что нам нужно сделать — это заполнить поле «From Email». Сюда вы вставляете адрес вашего почтового ящика размещенного на сервисе Яндекс или Gmail.
Для решения проблемы c отправкой писем Contact form 7 я создала специальный почтовый ящик на Яндекс, поэтому в этом поле я указываю его.
Теперь нам нужно проверить, правильно ли мы все настроили. Для этого воспользуемся опцией «Send test email». В этом поле я укажу свой почтовый ящик на Яндекс и отправлю тестовое сообщение.
Здесь нам нужно будет ввести адрес почтового ящика, на который вам бы хотелось получать все ваши письма, заявки, уведомления с данного сайта. Это не обязательно должен быть почтовый ящик, который вы использовали в настройке, это может быть любой другой. Желательно, что бы этот email находился не на mail.ru, потому, что они ужесточают свои спам-фильтры, и все письма, которые отправляются в автоматическом режиме с какого-то сайта, либо какого-то сервиса могут попадать в спам. Поэтому, лучше использовать тот же Яндекс или Gmail.
После нажатия на кнопку «Send Test» мы увидим сообщение о том, что наше письмо было отправлено, после чего мы можем перейти в почтовый ящик и проверить, дошло ли оно.
Итак, я получила вот такое сообщение:
В тексте написано, что данное сообщение было сгенерировано плагином WP Mail SMTP. Вверху, в адресе отправителя, мы видим данные, которые указывали в настройке плагина.
То есть email, который я указала в настройках плагина, указывается в качестве отправителя.
Теперь если я попробую отправить сообщение с формы Contact Form 7, то оно будет успешно доставлено.
Данный плагин так же можно использовать в том случае, если у вас не только с Contact Form 7 не приходят письма, а в целом, почта с сайта WordPress не доходит на ваш email. То есть, в этом случае, вы можете настроить отправку через SMTP, и таким образом решить эту проблему.
Я сталкивалась с такими хостингами, у которых возможность отправки через SMTP активировалась только на каких-то более дорогих тарифных планах, либо за отдельную плату.
Конечно, на большинстве хостингов эта функция есть, проблем с ней ник каких не возникает. Но если вдруг у вас, при настройке отправки писем, ни чего не получается, то есть смысл написать в техподдержку вашего хостинга и уточнить, осуществляется ли у них отправка почты через SMTP и в чем могут выть вызваны возникающие ошибки, возможно это проблема самого хостинга.
Вы также можете посмотреть видео инструкцию по данной теме:
Что же, на этом у меня все. Надеюсь, эта статья была для вас полезна, и теперь у вас не будут возникать проблемы с отправкой писем как для Contact form 7, так и для всего сайта WordPress в целом. Пишите комментарии, подписывайтесь на мою рассылку и не забудьте подписаться на новости блога и мой канал на YouTube чтобы не пропустить ничего интересного.
Источник
Не работает contact form 7 не отправляет письма? Решение есть!
Недавно возникла проблема, преимущественно на сайтах WordPress. Не работает Contact form 7 не отправляет письма. Мы с моим коллегой, верстальщиком смогли решить данную проблему.
Началось все с того, что мне написали несколько человек, сказав, что не могут отправить письмо через форму обратной связи. При нажатии на кнопку «Отправить» просто крутится иконка отправки и ничего не происходит.
Оказалось, что плагин Contact form 7 действительно не отправляет письма. Мы стали искать причину. Все наши пострадавшие, были пользователями «яблочной» продукции. То есть, они отправляли сообщения, пользуясь Сафари браузером.
Мы выяснили, что письма не отправляются только с операционных систем MacOS и IOS. А точнее из браузера Safari версии 11.1 и выше (на iOS начиная с версии 11.3). И при условии, если в форме обратной связи предусмотрено прикрепление файла.
Если пользователь не прикрепил никакого файла к сообщению, то браузер блокирует ajax запрос, который используется во всех новых версиях Contact form 7 для отправки.
Ajax – аббревиатура значит Asynchronous Javascript and XML. Простыми словами – это технология, благодаря которой страница полностью не обновляется, а обновляется лишь ее часть.
В Contact form 7, благодаря запросу Ajax, сообщения отправляются без перезагрузки страницы. Но, в последних версиях браузера Safari появился баг, который выдает ошибку и не дает отправить письмо без прикрепления к нему файла.
Мы потратили несколько часов, чтобы во всем разобраться. Если и у вас, Contact form 7 не отправляет письма, вот вам готовая инструкция.
Решение
Первый способ (быстрый)
Самый банальный, но подойдет тем, кому важно чтобы contact form 7 заработал, но копаться в коде своего сайта вы боитесь.
Вам достаточно убрать из формы возможность прикреплять файлы.
Именно так мы и поступили сразу, как узнали. Разбираться в проблеме днем, было некогда… Да и решение мы нашли не сразу… А люди днем активно пишут и надо чтобы письма отправлялись, хоть и без прикрепления дополнительных файлов.
А вот уже ночью, когда рабочий день закончился, мы во всем разобрались и все исправили. И делимся этим с вами.
Это полноценное решение, берите и пользуйтесь )
Второй способ (правильный)
Чтобы плагин Contact form 7 снова заработал у пользователей Safari, вам нужно отключить использование технологии Ajax.
Делается это не сложно.
Надо просто добавить в файл function.php вашей темы WordPress вот этот код:
function wpcf7_load_js_not_safari11() <
global $is_safari;
if($is_safari) <
return false;
> else <
return true;
>
>
add_filter( ‘wpcf7_load_js’, ‘wpcf7_load_js_not_safari11’ );
После добавления этой модификации в ваш шаблон WordPress, Contact form 7 снова будет отправлять сообщения обычным способом, с перезагрузкой страницы, без использования Ajax.
Надеюсь, с выходом нового обновления, в браузере Сафари пофиксят этот баг. А пока правим сами.
P.S. Если у ваших коллег, Contact form 7 тоже не отправляет письма, не жмотьтесь, дайте им ссылку на эту статью 😉
С уважением, Яна Ходкина и ее коллега веб-мастер, который не захотел писать свое имя 🙂
UX/UI Веб-дизайнер. Занимаюсь дизайном и разработкой сайтов для бизнеса более 6 лет. Связаться со мной можно через страницу Контакты
Источник
WordPress.org
Русский
Поддержка → Проблемы и решения → Не отображается контактная форма на сайте
Не отображается контактная форма на сайте
Добрый день!
Создана контактная форма при помощи Contact form 7. Был добавлен шорткод формы на существующую страницу.
Форма обратной связи на сайте не отображается, а только шорткод (который был добавлен на страницу). При этом в предварительном просмотре форма отображается и письма отправляются.
В чем может быть проблема?
В неправильно вставленном шорткоде.
На большее моих телепатических способностей не хватает. А Вы даже ссылку на проблему страницу не дали.
Код формы следующий:
Шорткод: [contact-form-7 title=»Форма обратной связи»] . Добавляю эту форму на страницу или в запись.
Этот же шорткод и отображается в теле страницы на сайте.
- Ответ изменён 2 года, 11 месяцев назад пользователем forme111 .
Добавляю эту форму на страницу или в запись.
Надо понимать, непосредственно в контент (в текст, в содержимое) записи. Или как-то иначе?
Этот же шорткод и отображается в теле страницы на сайте.
Если шорткод не обрабатывается в контенте записи, то, вероятно, Тема сделана очень криво. А другие шорткоды работают?
@forme111 ! Может быть уже пора показать сайт и проблемную страницу?
Надо понимать, непосредственно в контент (в текст, в содержимое) записи. Или как-то иначе?
В уже существующую запись, в текстовый редактор.
Если шорткод не обрабатывается в контенте записи, то, вероятно, Тема сделана очень криво. А другие шорткоды работают?
Другие шорткоды данного плагина тоже не отображаются. Почему тогда в предварительном просмотре данная форма есть и письма отправляются корректно? Из-за темы?
Почему тогда в предварительном просмотре данная форма есть и письма отправляются корректно?
Догадка есть. Но более точно сказать невозможно, пока нет ссылки на проблемную страницу.
В уже существующую запись, в текстовый редактор.
Форму?! Или всё же шорткод?
Почему тогда в предварительном просмотре данная форма есть и письма отправляются корректно?
В голом CF7 нет предварительного просмотра.
А значит кто его знает (коме Вас, разумеется) что Вы там на устанавливали.
А чем дольше и упорней Вы партизаните, тем всё меньше остаётся шансов получить помощь
Источник
ТОП 10 причин, почему не отправляются данные из формы обратной связи
Привет, друзья. Сегодня хотел бы сделать небольшую статью/памятку для тех кто испытывает проблемы с отправкой формы обратной связи. Дело в том, что я часто получаю письма и сообщения в социальных сетях, связанные с тем, что у вас по какой-то причине не доходят письма отправленные из форм обратной связи, поэтому я решил составить некий FAQ, в котором опишу ТОП самых популярных причин, по которым данные могут не приходить на почту.
Сразу оговорюсь, что в большинстве случаев, список поможет тем, кто берет формы с моего блога, так как я могу ручаться, что они точно работают, ведь я сам их проверил и периодически использую в качестве заготовок для того или иного проекта.
1. Забывают поменять адреса в демке
Начну с банальности, но если бы вы знали сколько писем я получаю на почту с тестовыми сообщениями, то не стали бы критиковать меня за этот пункт. Дело в том, что по неопытности, в некоторых исходниках с формой обратной связи я, для примера, писал свои данные для отправки и получения почты. Из-за невнимательности, многие люди просто забывают поменять адреса на свои и потом пишут, что форма не работает. Тысячи писем в год приходит с абра кадаброй и наборами символов, которые все мы вбиваем, чтоб протестировать форму.
Хорошо, если человек не забыл указать хотя бы отправителя. В таком случае есть возможность написать ему лично и указать на ошибку, но в большинстве случаев обе почты указаны неверно. В последнее время я не поленился и поменял в некоторых демках адреса на выдуманные, но все равно проблема все еще актуальна. А люди же тестируют не по разу, а 5 — 10, а то и того больше. Вот буквально сегодня — 11 писем с 11 до 12 дня пришло.
Вывод: пожалуйста, будьте внимательны и прежде чем писать, что что-то не работает, убедитесь, что правильно задали параметр всех возможных настроек.
2. Используется слишком старая версия PHP
Друзья, все формы, которые я делаю, тестируются на последних версиях PHP, то есть выше 7.0. Раньше это была 5.6 и, некоторые исходники могут работать на этой версии, но я рекомендую именно 7 и выше. На старой версии что-то может не поддерживаться и из-за этого, иногда, возникают проблемы.
Вывод: убедиться, что работаете с современным стандартом PHP и, в случае если у вас старая версия, то переключиться на 7. Сделать это можно у вашего хостера. Обычно, достаточно просто выбрать более актуальную и все. Никаких проблем с переходом возникнуть не должно. У меня, на Beget это выглядит так:
3. Попытка отправить данные просто открыв файл с формой в браузере
Многие, по неопытности, думают, что можно скачать демку на компьютер, открыть с рабочего стола ее в браузере и данные придут на почту. Друзья, так не бывает. Мы для отправки формы используем PHP, а это серверный язык программирования. То есть для работы нужен сервер локальный, например, Openserver, или реальный (любой хостинг или выделенный сервер).
Вывод: тестировать форму на сервере (хостинге).
4. Не настроен локальный сервер
Многие из тех, кто тестирует форму на локальном хостинге думают, что при отправке данных из контактной формы обязательно должны прийти на почту. Но это не всегда так. В большинстве случаев, по умолчанию сервера настроены так, что при отправке содержимое сообщения складываются в определенной папке в виде текстового файла. В Openserver, например, при отправке письма данные улетают в папку «email» в виде txt-файлов, которая находится по пути «/userdata/tmp/email».
Но, есть возможность настроить отправку через SMTP. Подробнее о том, как это сделать написано в официальной документации.
Вывод: настроить сервер или искать сообщения в папке, в которую складывает письма ваш сервер.
5. Тестовый период хостинга или бесплатный вариант
При использовании бесплатного хостинга или при тестовом бесплатном периоде (как правило месячным или 14 дневным), которыми нас заманивают компании, нужно убедиться, что не отключена возможность отправлять письма. В 99% — она отключена и каждая уважающая себя компания, предоставляющая услуги хостинга, будет это делать, чтоб сократить распространения спама. Думаю, вы понимаете, о чем я. Поэтому, тестируйте на платном домене и хостинге, тогда все должно быть в порядке.
Вывод: тестировать форму на оплаченном домене и хостинге.
6. Хостер не позволяет отправлять письма с сайта на бесплатные почтовые ящики
Иногда хостеры, в рамках все той-же борьбы со спамом отключают (ограничивают) возможность отправки писем на бесплатные почтовые ящики. Тоже касается и отправителя. Отправить данные можно только на привязанные к домену адреса или с привязанных к домену адресов. Уточните у хостера эти моменты, если предыдущие советы не помогли.
Кроме того, загляните в справку от Reg.ru, даже если вы не пользуетесь этим сервисом. Особенно в раздел «Возможные проблемы». Советы приведенные там могут помочь вам, натолкнув на мысль, что еще стоит проверить или уточнить у своего хостера.
Вывод: поинтересуйтесь у хостера нет ли ограничений на отправку писем на/с не привязанных к домену адресов.
7. Ошибка в путях при подключении
Одна из банальных, но очень частых проблем у тех, кто пишет с претензией, что формы на блоге нерабочие — это ошибки в путях при подключении файлов. Откройте консоль (f12), изучите ошибки, которые там выводятся и попробуйте устранить.
Вывод: изучите консоль на предмет ошибок, прежде чем говорить, что форма не работает.
8. Блокировка входящей почты самим почтовым сервисом
Недавно общался с девочкой в комментариях по поводу того, что не доходят письма. Она проверила все, что только возможно, перечитала все комментарии, а проблема оказалась в самом почтовом сервисе, который она использовала. Точнее не проблема, а система безопасности.
Предлагаю ознакомиться с ее комментарием, в котором она описала ситуацию, с которой пришлось столкнуться. Огромное ей спасибо за то, что не осталась равнодушной и описала процедуру решения. Я с такой ситуацией не сталкивался, но для многих пользователей Gmail она достаточно типичная и ее комментарий может помочь многим из вас.
9. Не работает PHP на сервере
Да, и такое бывает. Мне периодически пишут люди, что у них не работает форма и когда я начинаю разбираться в проблеме и прошу их вывести на сайте:
То оказывается, что PHP-теги вообще не обрабатываются. Люди используют какой-нибудь самый дешевый тариф и оказывается, что на нем вообще не поддерживается PHP. Кроме того, некоторые забывают, что работать нужно в файле с расширением «.php», а не «.html».
Вывод: убедитесь в том, что PHP-теги обрабатываются должным образом.
10. Отправка писем заблокирована хостером
Случалось со мной и такое. Обратился человек помочь с настройкой формы. Я все сделал, но при тестировании оказалось, что ничего не работает. Тогда закинул к себе на сервер и решил протестировать там. Оказалось, что письма успешно доходят. Тогда проверил все то, о чем писал выше, но все оказалось в порядке. Решил писать в техподдержку. Вот ответ:
Оказалось, что раньше под этим доменом на хостинге болтался заброшенный сайт. Вроде как его взломали и рассылали спам, поэтому хостер решил его заблокировать. Как видите, уже 2 года была заблокирована возможность отправлять письма с данного ресурса.
Вывод: не стесняйтесь обращаться в техническую поддержку. Это может сэкономить вам много времени.
Вот такая заметка получилась. Надеюсь, она поможет вам найти проблему и понять почему ваша форма обратной связи не работает, а если вы сталкивались с еще какими-нибудь типичными проблемами, то напишите пожалуйста о них в комментариях. Этим вы поможете сотням людей и они будут вам благодарны.
Похожие публикации
12 комментариев
Неплохо, все проблемы, кроме вопроса безопасности гугла, уже по сути, встречались, но здесь всё собрано в одно — спасибо.
Алексей, да. В той или иной степени все это звучит периодически в комментариях, так как люди часто спрашивают, что могло пойти не так, поэтому и решил создать отдельную заметку с перечнем типичных проблем, с которыми чаще всего приходится сталкиваться.
Добрый день! А у меня беда «наоборот». Форма обратной связи работает, письма доходят, а вот адреса отправителя нет ( в форме это поле обязательно к заполнению). Если дадите совет, что сделать, буду очень признательна!
Здравствуйте. Вот такое поле, примерно, должны быть в обработчике формы:
Где ‘Адрес отправителя’ — почта, с которой приходят письма.
dimadv7, спасибо! только я совсем новичок. Скачала плагин Contact Form by BestWebSoft и установила шорт код на сайт.
где и как можно найти это поле? Заранее спасибо!
Я думал вы делаете самостоятельно, а вы wordpress используете. Это вам в настроках плагина нужно копаться. Тут я помочь не могу. Насколько я знаю, чтобы там все работало, как надо, нужно почту для домена использовать, в качестве отправителя. То есть почту вида ‘чтототам@домен.ру’. А в код плагина лезть не рекомендую.
Спасибо! А wordpress это плохо? Видите ли, я вообще темнота насчет сайтостроения. Вот и решила поизучать эту тему для собственного саморазвития. Во-первых, по работе нужно (есть проблемы с нашим разработчиком), во вторых мне самой это просто мегаинтересно. Кучу видеоуроков смотрела, вот и скачала плагин.
Нет, wordpress — это не плохо. Мой блог тоже на wordpress. Отличная CMS, прост я думал, что у вас есть исходник в котором вы пытаетесь разобраться, и, в большинстве случаев, поправить можно там. А у вас плагин, в который можно конечно вносить изменения, но там и так все ок. Просто нужно настроить его правильно. Укажите почту привязанную к домену и должно быть все ок. А вообще посмотрите в интернете подробнее про настройку плагина, наверняка ваша проблема уже освещалась и решена.
Здравствуйте!
Сделал по инструкции
const SENDER = ‘otpravitel@example’;
const CATCHER = ‘polucatel@example’;
Почта привязанную к домену.
Заявки не отправляются, кроме этого, я не вижу их в отправленных. Проверял варианты как с аутентификацией по SMTP так и без (раскомментировал строки настроил аутентификацию). Пробовал менять на последние версии phpmailer.php и smtp.php. Пробовал менять пути к phpmailer.php и smtp.php.
Почта настроена и работает, с другого сайта письма уходят, в т.ч. SMTP порт открыт, т.е. с аутентификацией я могу использовать smtp.gmail.com.
В общем ни как. Даже самому себе заявки с корзины не отправляются.
Дмитрий, ошибок в консоли нет, связанных с isRequired?
Добрый вечер!
Подскажите, в чем может быть проблема, если компьютера phpmailer работает, а с телефона (на Android) нt отправляет письма.
Заранее большое спасибо.
С уважением,
Александр
Первый раз о таком слышу. От устрйства это не должно зависеть. Возможно, с js проблема на андроид устройстве только, Но дело точно не в серере и не phpmailer, раз на ПК работает нормально.
Источник