Wordpress изпращане на поща. Решаване на проблема с изпращането на поща в wordpress

Wordpress изпращане на поща.  Решаване на проблема с изпращането на поща в wordpress
Wordpress изпращане на поща. Решаване на проблема с изпращането на поща в wordpress

Един от най-важните въпроси на сайта е пощенският сървър, т.е. изпращане на имейли от сайта. Може да е формата обратна връзка, Приложение, Поръчка, Обратно повикване и др.

Изпращане на имейли от сайта

Много хостинги имат собствен сървър за електронна поща и формуляри от добавки като Contact Form 7 ще бъдат изпращани без разширени настройки. Но за по-добра работаи повече надеждност, по-добре е да делегирате пощенския сървър на големи услуги като Yandex, Google, Mail.ru. Създаване на пощенски сървър на такива услуги се нарича домейн поща. Пощата на домейна ви позволява да създавате пощенски кутии от формата: [имейл защитен]

Поща на домейна на Yandex

  1. Трябва да влезете (или да създадете) акаунт в Yandex.

    Домейнът ще бъде свързан с този акаунт. Ако трябва да дадете достъп на клиента, не трябва да се свързвате с вашия акаунт.

  2. Отидете до пощенската услуга на домейна
  3. Посочете домейна, за който искате да създадете поща, щракнете върху свързване на домейн
  4. Делегираме домейна на yandex, за това предписваме dns сървъра на yandex за домейна
    dns1.yandex.net
    dns2.yandex.net

    Или създаваме A-запис съгласно инструкциите, без пълно делегиране. Вторият вариант е по-предпочитан, т.к. по този начин делегираме само поща на Yandex.
  5. След известно време натискаме бутона „Проверка на собствеността върху домейна“ (обикновено няколко часа) и когато домейнът бъде делегиран, ще бъде възможно да се създаде кутия (и повече от една).
  6. Влизаме в кутията под създадената парола и преминаваме през кратка регистрация, след което кутията започва да функционира.

Възстановяване на достъпа до пощата на домейна на Yandex

Ако данните са загубени в акаунта в Yandex, към който е свързан домейнът, тогава, за да го свържете отново с друг акаунт, трябва да направите следното:

  1. Създайте нов акаунт в Yandex.
  2. Напишете заявка до техническата поддръжка на Yandex за промяна сметкакъм който е свързан домейна. Във формуляра ще трябва да посочите 3 отворени кутии (или всички, ако има 3 или по-малко).
  3. Най-вероятно поддръжката ще предложи да изпрати код за потвърждение на имейла, посочен по време на регистрацията на домейна. Трябва да разберете кой имейл е посочен във формата на администратор в лична сметкакъдето домейнът е закупен. Можете да проверите изпращането на писмо до имейл от формата.
  4. Изпращаме кода за потвърждение на служителя на Yandex и той свързва домейна с посочения нов акаунт.

Прихващане на собственост върху домейн на Yandex

Можете да създадете имейл на домейн в Connect, като потвърдите правата върху него. Освен това, ако пощата на Yandex вече е създадена за този домейн, тогава тя ще предложи 2 опции: възстановяване на правата върху домейна или създаване нова поща. Ако е избрана втората опция, тогава старото местоположение на пощенския домейн ще спре да работи и разширението на сайта след @ ще се промени на техническо (пример: @site-ru-88888.yaconnect.com). Ако върнете правата върху домейна на оригиналния акаунт, тогава пощата ще се върне в нормалната си форма и ще работи отново.

Поща на домейн в Google

Всичко, което трябва да знаете за корпоративната поща в Google е, че е платена.

Настройка на SMTP

За правилната работа на пощата на домейна на сайта трябва да инсталирате приставката WPMail SMTPи го настройте така:
От имейл- адресът, от който ще се изпращат писма и на който получателят ще изпрати отговор, като кликне върху бутона "Отговор" в пощата си.

От името- името на подателя, можете да посочите името на сайта или вашето име и фамилия.

пощенска програма- изпращане на писма чрез системен транспорт (функция mail()) или чрез SMTP сървър. Изберете „Изпращане на всички имейли на WordPress чрез SMTP“.

SMTP хост- Адрес на SMTP сървър. Можете да разберете от услугата за поддръжка или в секцията за помощ. За Yandex Mail използвайте smtp.yandex.ru, за Gmail - smtp.gmail.com.

SMTP порт- Порт на SMTP сървър, зависи от типа криптиране. За Yandex Mail и Gmail използвайте порт 465.

Шифроване- тип криптиране. За Yandex mail и Gmail трябва да инсталирате „Използване на SSL криптиране“.

Удостоверяване- дали е необходимо да се извърши авторизация на мейл сървъра. Задайте „Да: Използване на SMTP удостоверяване“.

потребителско име- имейл влизане. обикновено, пълен адрес пощенска кутия, трябва да съответства на стойността, посочена в полето От имейл.

Парола- парола за пощенска кутия.

След като запазите настройките, можете да тествате пощенската кутия (блок Изпратете тестов имейл). Веднага ще получите отчет дали всичко е нормално.
Резултатът беше: bool(true) - всичко е наред, ако bool(false) - тогава трябва да погледнете регистрационните файлове.

Грешки и решения

грешка: разширение липсва openssl(Липсва OpenSSL разширение).
Решение: деактивирайте типа криптиране, направете „Без криптиране“ и съответно променете SMTP порта.

грешка: Не можа да се удостовери(Неуспешно удостоверяване).
Решение: отидете до свързаната кутия и проверете дали всичко е наред, дали кутията е регистрирана.

Поща на хостван домейн

Големите хостинг компании предоставят своите пощенски сървъри. Просто трябва да намерите данните за настройка на SMTP.

Поща на домейна на mail.ru

В Mail.ru пощата на домейна се нарича Mail for Business.

1. Потвърждаваме собствеността върху домейна по един от 3 начина.
2. Регистрираме MX-записа в DNS на домейна
Име на поддомейн: @
Тип запис: MX
Данни: emx.mail.ru.

Здравейте! Продължаваме да анализираме най-интересните и най-полезните плъгини за WordPress! Днес ще научите за полезна добавка, която ще ви помогне да преконфигурирате функцията wp_mail(), за да използвате SMTP вместо PHP mail(), а също и да създадете страница в Административни панели на WordPressза промяна на настройките на пощата.

Можете да инсталирате плъгина директно от административния панел на WordPress. Отидете на страницата: Plugins - Add New, въведете името на приставката във формата за търсене, натиснете Enter, инсталирайте и активирайте приставката.

– От имейл, въведете тук имейл адресподател на писма.

– От Име, име на подателя на писмата.

– Mailer, изберете функцията за изпращане на имейли. Препоръчва се по подразбиране - Изпращайте всички имейли на WordPress чрез SMTP.

– Път за връщане, активирайте функцията за връщане на букви.

SMTP опции.Тези опции са за изпращане на поща чрез SMTP протокол.

– SMTP хост, името на вашия хост.

– SMTP порт, въведете своя порт. Ако не знаете откъде да получите тези параметри, свържете се с вашия хостинг доставчик.

– Шифроване, изберете вида на криптирането:

  • Без криптиране, без криптиране.
  • Използвайте SSL криптиране, SSL криптиране.
  • Използвайте TLS криптиране. Това не е същото като STARTTLS. За повечетосървъри SSL е препоръчителната опция, използвайте TLS криптиране. За повечето сървъри SSL е препоръчителната опция.

– Удостоверяване,

  • Не: Не използвайте SMTP удостоверяване,не използвайте SMTP удостоверяване.
  • Да: Използвайте SMTP удостоверяване, използвайте SMTP удостоверяване.
  • Ако е посочено стойност NO, стойностите по-долу (вход и парола) се игнорират.

– Потребителско име, потребителско име. (от контролния панел на хостинга)

- Парола, парола.

Запазите промените.

Изпратете тестов имейл.Тест за изпращане на имейл.

– До:, тук посочете имейл адреса, на който ще бъде изпратен тестов имейл за проверка на функционалността на функцията.

Вече писах за това как заобикаляне на сървъра sendmail. Онзи ден отново се сблъсках с адски ограничения на сървъра виртуален хостинг Ru-center отново се озова в търсене на заобиколни решения.


Този път шаблонът, поради редица причини, не беше напълно готов за работа WPMail SMTPкоето беше обсъдено по-рано. Затова реших да тръгна по друг начин и да опитам силно препоръчания плъгин Configure SMTP, който по същество решава подобна задача - изпраща цялата поща от WordPress през външен или вътрешен SMTP сървър.

Не знам дали има руска локализация на този плъгин, не съм го търсил, т.к Не виждам истинска нужда. Външно този плъгинне се проявява по никакъв начин, настройките са сведени до минимум и изглеждат така. Картината може да се кликне.

Както можете да видите на екрана - нищо не е трудно. Мисля, че ще бъде още по-лесно да настроите плъгина на английски. Е, за когото е трудно, ще прегледам накратко всички точки.

  • Изпращане на имейл чрез Gmail?Ако искате да използвате SMTP сървъра на Google, поставете отметка в квадратчето и всички настройки ще бъдат регистрирани автоматично. Без логин и парола, разбира се.
  • SMTP хост. Всъщност адресът на SMTP сървъра. Например в Ru-center това е mail.nic.ru, в Yandex - smtp.yandex.ru. Трябва да разберете адреса на SMTP сървъра директно от вашата пощенска услуга.
  • SMTP порт. Портът на SMTP сървъра обикновено се посочва заедно с неговия адрес. Това обикновено е порт 25, 587, 465, 475 или порт 2525.
  • Префикс за защитена връзка. Методът на свързване също трябва да бъде намерен от вашата пощенска услуга. В Ru-center, например, няма сигурност, така че оставяме това поле празно. Настройте SSL в Google.
  • Използване на SMTPAuth?Трябва да поставите отметка в квадратчето, ако вашият SMTP сървър изисква оторизация. Необходим е в почти всички пощенски услуги.
  • SMTP потребителско име/SMTP парола. Мисля, че е ясно за всички - потребителското име и паролата за достъп до SMTP сървъра.
  • дължина на пренасяне на думи. Задаване на пренасяне на думи. Нямам идея кому е нужно.
  • разрешаване на отстраняване на грешки?Активирайте или деактивирайте програмата за отстраняване на грешки. Обикновено е необходимо на етапа на разработка за улавяне на грешки.
  • Имейл на подателя/Име на подателя. Разбираемо и без превод - това е името и адресът, които ще се показват като подател на писмото.

След като всички настройки са въведени, горещо ви препоръчвам да тествате приставката, като кликнете върху бутона „Изпращане на тестов имейл“. Ако всичко е направено правилно, ще получите писмо. Ако няма буква, потърсете грешка в настройките. Плъгинът работи напълно и е тестван от мен на WordPress 3.7.1 и локалния SMTP сървър на Ru-center.

Един от основните "компоненти" на всяко уеб приложение е възможността за изпращане на имейл съобщения - електронна поща.

Това обаче не означава, че всяко приложение използва свой собствен имейл клиент. (Въпреки че хората, разбира се, създават свои собствени).

Приложенията изпращат имейли до имейл кутия, когато потребител се регистрира, промени паролата, настъпят промени в системата и т.н. Като цяло, когато се случи нещо, за което собственикът на сайта иска да уведоми посетителите.

Концепцията за имейл

Преди да се потопим в това, което API на WordPress може да предложи за изпращане на имейли, редактиране на настройки за имейли и други подобни, е важно да знаете няколко неща. важни точкиотносно имейла.
А именно, важно е да се разбере как работят компонентите, които създават самото писмо, а това е нещо повече от адрес, тема и съдържание. Има някои технически подробности, които трябва да разберете, преди да започнете да създавате свои собствени имейли.

"Шапка" електронна пощасъдържа минимум информация: от кого и до кого е изпратено писмото. Можете да намерите и друга информация. Например времето, когато имейлът е изпратен или получен.

Когато работим с програмата WordPress, подателят на имейл е зададен по подразбиране. Ако не е посочено, тогава адресът на изпращача приема формата " [имейл защитен]домейн. com»

Ако искате да зададете различен адрес за „отговор“, като „ [имейл защитен] ”, тогава тази опция е налична в настройките.

Най-добрият начин за работа със съдържание е да използвате масиви.

Тип MIME

Когато дойде време да посочите формата за изпращане на имейл, вероятно ще видите два алтернативни формата:

  • обикновен текст

Свикнали сте да виждате HTML в повечето съвременни клиенти за електронна поща, но ако имате опростен клиент или ако е настроен да показва само обикновен текст, или четете имейл на дисплея на стар телефон, тогава съдържанието ще да се показва в обикновен текст.

Програмата WordPress съответно ви позволява да изпращате имейли както в HTML, така и в обикновен текстов формат.

След като разгледаме пример, който показва как програмно да изпращате имейли, ще разгледаме по-отблизо какво се случва. Накратко, има определена "кука", която значително опростява всичко, но няма да я видим в действие, докато не се справим с всички необходими фрагменти от писмото.

Прикачени файлове

Както знаете, прикачен файл е всеки файл, прикачен към основното писмо, изпратен до получателя заедно с текста.

Факт е, че има някои правила и разпоредби за изпращане на имейл с прикачен файл и те не е задължително да са предвидени в приложението. Вместо това сървъри пощенски клиентизадават свои собствени ограничения за определени типове входящи файлове.

Например:

  • Някои клиенти не позволяват изпращане/получаване на ZIP и EXE файлове (т.е. архиви и изпълними файлове)
  • Повечето услуги имат ограничение за размера на прикачения файл.
  • Определени типове имейли могат да бъдат маркирани като спам автоматично (въз основа на прикачени файлове и основен текст)

Разбира се, не можем да променим правилата. Но си струва да сме наясно с ограниченията на това до кого изпращаме писма и да спазваме установените граници. Но не се тревожете! Изпращането на имейл в съответствие с дадените условия и поставените цели в WordPress не е трудно!

Може да не се нуждаете от прикачени файлове, но също така е възможно да искате да прикачите един или дори няколко допълнителни файлове. В програмата това може да се реализира както с низ, така и с масив. Ние обаче няма да разглеждаме този случай точно сега, но със сигурност ще го засегнаме, когато се занимаваме с примера.

До, Тема, Съобщение

В повечето случаи имейлът се състои от три основни елемента: „до“ (адрес електронна пощаполучател), „Тема“ и „Съобщение“ (основен текст).

В WordPress е доста лесно да се работи с тази информация. Достатъчно е само да предоставите на всяка "колона" собствен ред.

Разбира се, ако искате да изпратите няколко имейла наведнъж, тогава можете или да повторите изпращането на имейла толкова пъти, колкото искате, да изпратите по един имейл до всеки потребител или да използвате масив от адреси на получатели в WordPressпощаAPI, тогава писмото се изпраща до всички, които са били включени в този масив.

И помнете! Ако искате да промените по подразбиране отговаряте на (отговор) адрес към вашия собствен, погледнете в "Съдържание".

Използване на API за имейл на WordPress

Обхванахме всички основни точки и сме готови да преминем към основната част на статията, тоест към изучаването на API за имейл на WordPress.

Накратко, цялата функционалност по тази тема е концентрирана във функцията wp_mail, но все още има някои „кукички“, за които също трябва да сме наясно, ако искаме да се възползваме напълно от системата.

Основни "куки"

  • wp _ mail _ content _ type ви позволява да зададете MIME типа на изходящата поща
  • wp _ mail _ from е филтър, с който можете да настроите имейл адресизпращач, без да прибягва до масива $headers.
  • wp _ mail _ from _ name - филтър с подобна функция, но за указване на името на подателя (също без използване на масива $headers.)
  • wp_login – Кукичката, която ще използваме, за да демонстрираме, като изпратим имейл до човек, когато влезе в таблото за управление на WordPress.

За пълнота ще споделя кода си по-долу, за да можете да видите всичко, което разгледахме в действие, за да можете да научите как работи всичко.


"; $message .= "Вашият акаунт е създаден. Вашата информация за вход е по-долу:"; $message .= "
"; $message .= "

    "; $message .= "
  • Потребителско име: " . $input["имейл-адрес"] . "
  • "; $message .= "
  • Парола: " . $password . "
  • "; $message .= "
"; $message .= "
"; $message .= "Можете да влезете в приложението тук."; add_filter("wp_mail_content_type", create_function("", "return "text/html";")); add_filter("wp_mail_from", "acme_mail_from") ; add_filter("wp_mail_from_name", "acme_mail_from_name"); wp_mail($input["email-address"], "Вашият акаунт в Acme е създаден!", $message, array()); ) функция acme_mail_from($email) ( // ЗАБЕЛЕЖКА: заменете с @. Това причинява проблеми със синтаксиса highlighter.return "donotreplyacme.com"; ) функция acme_mail_from_name($name) (връща "The Acme Company"; )

< ? php

функция acme_email_individual($input)(

* Забележка: приемете, че $input има ключове за "имейл-адрес".

// Генериране на паролата

$password = wp_generate_password(12, false) ;

// Изпратете имейл до потребителя, че техният профил е създаден

$ съобщение. = "

" ;

$ съобщение. = „Вашият акаунт е създаден. Вашата информация за вход е по-долу:“;

$ съобщение. = "
" ;

$ съобщение. = "

    " ;

    $ съобщение. = "

  • Потребителско име: " . $ input [ "имейл-адрес" ]. "
  • " ;

    $ съобщение. = "

  • Парола: " . $password . "
  • " ;

    $ съобщение. = "

" ;

$ съобщение. = "
" ;

add_filter ("wp_mail_content_type" , create_function ("" , "return "text/html";" ) ) ;

add_filter("wp_mail_from" , "acme_mail_from" ) ;

// Генериране на паролата= Генериране на парола

// Изпратете имейл до потребителя, че техният профил е създаден= Изпращане на имейл до потребителя, чийто акаунт е създаден

// ЗАБЕЛЕЖКА: заменете с @. Това причиняваше проблеми с маркера за синтаксис= Обърнете внимание! Заменете [ at ] с "@". (Това би причинило проблеми с подчертаването на синтаксиса)

Разборът на кода трябва да изясни нещата. След като напишем основната информация, ние, използвайки плюсовете на „куките“, предоставени в програмата, създаваме „низове“ (низове) като аргументи и в крайна сметка извикваме самата функция wp_mail.

Имайте предвид обаче, че допускаме празни масиви за някои аргументи. $заглавия. И всичко това, защото имаме персонализиран филтър, който да посочим " От името„(Име на изпращача) и „ От адрес”(Адрес на изпращача)

Този метод не е недвусмислено по-добър от алтернативата. Сега обаче виждаме, че има няколко начина за изпълнение на задачата.

Здравейте! Днес искам да говоря за един много често срещан проблем, който уеб администраторите, които използват . Това проблем с изпращането на поща(Или по-скоро неуспешното му изпращане). Веднъж се сблъсках с такъв проблем в блога си (тогава не получих писма с резервни копия на база данни). Сега все по-често ме молят да разреша този проблем на други сайтове, така че в тази статия ще опиша най-често срещаните начини за решаване на този проблем.

Най-често хората се оплакват от факта, че са в пощата Не получава известия за нови коментари, архивиране на бази данни или имейл с потребителско име и парола не е полученПо време на регистрация.

PHP функцията отговаря за изпращането на поща в WordPress поща(), с чиято работа на някои хостинг има проблеми. Като начало ще опиша няколко прости решения на проблема:

  • Първо попитайте вашия хостинг доставчик дали сте активирали тази функция. поща().
  • Второ, уверете се, че имате имейл адрес във вашия администраторски профил.
  • И трето, опитайте се да създадете имейл като [имейл защитен]вашият_домейн(Например [имейл защитен]уебсайт). Във всички писма, изпратени от worpress, този адрес е в реда за подател, но някои хостинги не позволяват изпращане на писмо с такъв сапун, ако всъщност не е на сървъра.

Ако след горните стъпки пощата все още не е изпратена, тогава трябва да принудите wordpress да я изпрати чрез smtp сървър. За да направите това, можете да отидете по два начина: като използвате приставката и като направите промени в кода.

В първия случай предлагам да използвате конфигуриране на smtp плъгин, тъй като е лек и има малко настройки и ако използвате Googlemail, тогава обикновено трябва само да въведете своя имейл адрес и парола и плъгинът сам ще замени всички настройки.

Както казах по-горе, ако използвате , тогава трябва да поставите отметка в квадратчето Изпращайте имейл чрез Gmailи попълнете полетата SMTP потребителско имеИ SMTP парола. След това запазете настройките и щракнете върху бутона „Изпратете тестов имейл“и изчакайте писмото да пристигне в пощата ви. Освен това трябва да дойде на адреса, посочен във вашия администраторски профил, а пощенската кутия, която сте посочили в приставката, е, така да се каже, транзитна, т.е. използва се само за изпращане на имейли чрез smtp.

Ако използвате поща в друга услуга, различна от Google, тогава в допълнение към вашето потребителско име и парола, трябва да посочите други настройки (квадратчето за отметка Изпращайте имейл чрез Gmailняма нужда от инсталиране)

В полетата SMTP хостИ SMTP портпосочете съответно сървъра и порта на вашата пощенска услуга. След това по избор можете да зададете следните настройки. дължина на пренасяне на думи- броя на знаците в буквата преди прекъсването на реда. имейл на изпращачаИ Име на изпращачатова е адресът на изпращача, който ще бъде показан в реда „От“ и името на подателя. Ако не посочите тези параметри, тогава по подразбиране те ще бъдат взети от настройките на вашия блог.

Ако не искате да зареждате двигателя си с допълнителни плъгини, тогава можете да разрешите проблема, като добавите промени в кода. За да направите това, трябва да отворите файла wp-includes/class-phpmailer.phpи направете следните промени. (по-долу са частите от кода, които са променени; - показва пропуск в кода) Този метод е въведен Лекактус

Var $From = "въведете имейл тук"; --- /** * Метод за изпращане на имейл: ("mail", "sendmail" или "smtp"). * @var низ */ var $Mailer = "smtp"; --- //////////////////////////////////////////////// // // SMTP ПРОМЕНЛИВИ /////////////////////////////////////////// / //// /** * Задава SMTP хостовете. Всички хостове трябва да бъдат разделени с точка и запетая *. Можете също да посочите различен порт * за всеки хост, като използвате този формат: * (напр. "smtp1.example.com:25;smtp2.example.com"). * Домакините ще бъдат съдени по ред. * @var низ */ var $Host = "smtp.your_smtp_server.ru"; --- /** * Настройва Mailer да изпраща съобщение чрез SMTP. * @return void */ function IsSMTP() ( $this->Mailer = "smtp"; ) /** * Настройва Mailer да изпраща съобщение чрез функцията PHP mail(). * @return void */ function IsMail() ( $this->Mailer = "smtp"; ) /** * Настройва Mailer да изпраща съобщение с помощта на програмата $Sendmail. * @return void */ function IsSendmail() ( $this->Mailer = "smtp"; ) /** * Настройва Mailer да изпраща съобщение чрез qmail MTA. * @return void */ функция IsQmail() ( $this->Sendmail = "/var/qmail/bin/sendmail"; $this->Mailer = "smtp"; )

След всички горепосочени стъпки проблемите с изпращането на поща до wordpress трябва да изчезнат. Не забравяйте да се абонирате за