
🔧 Contact form 7: sähköpostin toimituksen määrittäminen ja lähetysvirheiden korjaaminen
Miten Contact Form 7 lähettää sähköpostit ja miksi ne eivät mene perille
Contact Form 7 on käytössä yli 5 miljoonalla verkkosivustolla, mikä tekee siitä suosituimman lomake-lisäosan WordPressille. Kolmen kentän lomakkeen pystyttää muutamassa minuutissa, mutta kun sähköpostit lakkaavat tulemasta perille, alkavat ongelmat: sivuston omistajat menettävät liidejä, eivät tiedä mikä meni pieleen ja päätyvät selaamaan keskustelupalstoja.
Ongelma ei lähes koskaan ole itse lisäosassa. CF7 antaa sähköpostin wp_mail()-funktiolle, joka välittää sen palvelimellesi. Siitä eteenpäin tapahtumat riippuvat hosting-palvelustasi, PHP-asetuksista, aktiivisista lisäosista ja tusinasta muita tekijöitä. Yksi pois päältä oleva REST API tai väärä "From"-kenttä, ja lomake toimii mutta sähköposteja ei tule.
Olemme koonneet vaiheittaisen oppaan CF7-sähköpostipohjan määrittämiseen ja analysoineet kaikki yleiset toimitusongelmien syyt konkreettisine ratkaisuineen, jotka on testattu kymmenillä sivustoilla.
💡 Pikaopas:
- To-, From- ja Subject-kenttien täyttäminen sähköpostiasetuksissa
- Valmiin HTML-sähköpostirunkopohjan kopiointi
- Yleisimpien sähköpostin lähetysongelmien syiden tarkistus
- SMTP:n määrittäminen luotettavaa toimitusta varten
Sähköpostipohjan määrittäminen: vaihe vaiheelta
Avaa lomakkeesi hallintapaneelissa: Contact Form → valitse lomakkeesi → "Mail"-välilehti. Tässä CF7 kokoaa sähköpostin kolmesta osasta: otsakkeet, aihe ja runko. Virhe missä tahansa kentässä katkaisee toimituksen, joten käydään jokainen läpi.
To, From ja Subject
To on oma toimiva sähköpostiosoitteesi, johon lähetykset saapuvat. Esimerkiksi [email protected] tai Gmail-osoite, jos käytät SMTP-lisäosaa.
From-kentässä on yksi keskeinen sääntö: lähettäjän verkkotunnuksen on vastattava sivustosi verkkotunnusta. Useimmat palveluntarjoajat hylkäävät sähköpostit, joissa "From"-kenttä sisältää osoitteen [email protected] sivuston toimiessa osoitteessa mysite.com. Käytä osoitetta [email protected]; postilaatikon ei tarvitse oikeasti olla olemassa, ja se on aivan ok. Sähköpostipalvelin tarkistaa verkkotunnuksen, ei sitä, onko osoite todellinen.
Subject voi sisältää CF7-makroja dynaamista dataa varten:
1 [_site_title] — Form "Contact Form"
[_site_title] lisää automaattisesti sivustosi nimen WordPressin asetuksista. Näin näet heti, mistä projektista lähetys on peräisin.
Lisäotsakkeet: jätä Reply-to rauhaan; CF7 asettaa automaattisesti sähköpostiosoitteen siitä lomakekentästä, jonka määrität sähköpostin rungossa.
Sähköpostin runko: HTML-pohja
CF7:n oletussähköposti on muotoilematonta tekstiä kenttätägeillä. Se näyttää halvalta ja on vaikealukuinen. Tässä on pohja, jota käytämme kaikissa projekteissamme, logolla, asianmukaisella asettelulla ja klikattavilla sähköposti-/puhelinlinkeillä:
1 <img src="https://YOUR_DOMAIN.COM/wp-content/uploads/2024/logo-150x150.png" 2 style="max-width: 150px !important;"> 3 4 <h3>The user submitted the following information:</h3> 5 6 <p><b>Name:</b> [text-59]</p> 7 <p><b>E-mail:</b> <a href="mailto:[Email]">[Email]</a></p> 8 <p><b>Phone:</b> <a href="tel:[tel-116]">[tel-116]</a></p> 9 <p><b>Message:</b> [textarea-102]</p> 10 11 <p>Message sent from [_site_title] ([_site_url])</p>
Tärkeää: logon tulee olla neliönmuotoinen ja kompakti (noin 150 px per sivu), muuten se hajoaa sähköpostiohjelmissa. Hakasulkeissa olevat makrot ([text-59], [Email]) ovat lomakekenttiesi tageja; korvaa ne omilla nimilläsi "Form"-välilehdeltä. Ja muista valita "Use HTML content type" -valintaruutu pohjaeditorin alapuolelta, muuten HTML-tagit saapuvat muotoilemattomana tekstinä.

6 Syytä, miksi sähköpostit eivät lähde ja miten ne korjataan
1. Väärä "From"-kenttä
Yleisin virhe: "From"-kenttä sisältää asiakkaan sähköpostiosoitteen lomakkeesta, [Email]. Vastaanottava palvelin näkee sähköpostin gmail.com-verkkotunnuksesta lähetettynä hosting-palvelustasi ja estää sen väärennöksenä. Ratkaisu: "From"-kentän on aina oltava osoite sivustosi verkkotunnuksella. Laita asiakkaan sähköposti Reply-to-kenttään lisäotsakkeen kautta:
1 Reply-To: [Email]
2. Tietoturvalisäosien ristiriidat
Lisäosat kuten Wordfence, iThemes Security (nykyisin Solid Security) ja All-In-One Security voivat estää lähtevät WordPressin HTTP-pyynnöt, mukaan lukien sähköpostin lähetyksen. Vianmääritys on yksinkertainen: ota kaikki lisäosat pois päältä paitsi Contact Form 7 ja testaa lomake. Jos se toimii, ota lisäosat käyttöön yksi kerrallaan löytääksesi syyllisen.
3. REST API on pois päältä
Contact Form 7 käyttää WordPressin REST API:a lomakkeiden lähettämiseen AJAXilla. Optimointilisäosat, kuten Clearfy Cache (huom: lokakuusta 2025 alkaen projekti on sulautettu Super Page Cacheen eikä sitä enää kehitetä erikseen; nykyisiä käyttäjiä kehotetaan siirtymään Super Page Cacheen), saattavat ottaa REST API:n pois päältä nopeuttaakseen sivustoa. Tarkista optimointilisäosasi asetukset: REST API -kytkimen tulee olla "Off", mikä tarkoittaa, että REST API on käytössä ja toimii.
4. Hosting estää mail()-funktion
Halvoissa hosting-palveluissa PHP:n mail()-funktio on usein pois päältä tai rajoitettu. Contact Form 7 lähettää sähköpostit oletuksena sen kautta. Ota yhteyttä palveluntarjoajasi tukeen ja kysy, onko mail() sallittu sinun paketissasi. Jos ei, vaihda SMTP:hen (katso alla oleva osio); tämä ratkaisee ongelman kokonaan.
5. Sähköpostit päätyvät roskapostiin
Vaikka sähköposti olisi lähetetty, Gmail tai palveluntarjoajasi sähköpostipalvelu saattaa laittaa sen roskapostiin. Syitä ovat: puuttuvat SPF/DKIM-tietueet verkkotunnukselle, "epäilyttävä" From-otsake, HTML ilman tekstiosaa. Ratkaisu: SMTP-lisäosa, joka lähettää ulkoisen palvelun kautta (Gmail API, Mailgun, SendGrid). Ne allekirjoittavat jokaisen sähköpostin DKIM-allekirjoituksella ja käyttävät hyvämaineisia SMTP-palvelimia, mikä tekee perillemenosta lähes 100%.
6. PHP- ja WordPress-versioiden yhteensopivuus
CF7:ää päivitetään aktiivisesti (tarkista nykyinen versio wordpress.orgista; vuoden 2026 puolivälissä se on 6.x-haara, joka toimii PHP 7.4:llä ja sitä uudemmilla). Jos hosting-palvelusi pyörittää vanhaa PHP 5.6:ta, tai päinvastoin otit käyttöön kokeellisen PHP 8.4:n tarkistamatta yhteensopivuutta, sähköpostit saattavat hiljaisesti epäonnistua. Pysy PHP 8.1-8.2:ssa; tämä on toimivin vaihtoehto.
SMTP:n määrittäminen: toimitusongelman ratkaiseminen lopullisesti
SMTP on protokolla, joka välittää sähköpostin ei palvelimesi mail()-funktion kautta, vaan täysiverisen sähköpostipalvelun kautta. WordPressiin on tusina lisäosaa, jotka kaappaavat wp_mail()-funktion ja reitittävät sähköpostit ulkoisen SMTP-palvelimen kautta.
Mitä valita:
- Gmail API: ilmainen 500 sähköpostiin päivässä Google Workspacen tai henkilökohtaisen Gmail-tilin kautta. Plussat: erinomainen perillemeno. Miinukset: sinun on luotava projekti Google Cloud Consolessa ja hankittava OAuth-avaimet.
- Brevo (entinen Sendinblue): 300 ilmaista sähköpostia päivässä, yksinkertainen SMTP käyttäjätunnuksella ja salasanalla. Ei vaadi OAuthia.
- Mailgun: 100 ilmaista sähköpostia päivässä, hae API-avain ja olet valmis. Kehittäjille.
Asenna mikä tahansa SMTP-lisäosa (WP Mail SMTP, Post SMTP, FluentSMTP; kaikki ovat ilmaisia WordPressin lisäosavarastossa), syötä palveluntarjoajasi tunnukset, etkä enää tarvitse mail()-funktiota. CF7 jatkaa toimintaansa normaalisti, mutta sähköpostit kulkevat luotettavaa kanavaa pitkin.
CSS ja mukautetut fontit CF7-sähköposteissa
Jos lähetät muutakin kuin yhteydenottolähetyksiä, esimerkiksi tilausvahvistuksia lyhyillä tuotetiedoilla, sähköpostin tyylittely on järkevää. CSS sähköpostissa toimii inline-tyyleillä (style=""); sähköpostiohjelmat jättävät ulkoiset tyylitiedostot huomiotta. Tässä esimerkki tyylitellystä pohjasta:
1 <img src="https://YOUR_DOMAIN.COM/logo.png" 2 style="max-width: 150px !important;"> 3 4 <h2 style="font-family: Arial, sans-serif; color: #333;"> 5 The user selected a product: 6 </h2> 7 <h2 style="font-family: Arial, sans-serif;">[hidden-120]</h2> 8 9 <hr style="border: 1px solid #eee;"> 10 11 <h3 style="font-family: Arial, sans-serif; color: #555;"> 12 The user submitted the following information: 13 </h3> 14 15 <p style="font-size: 14px;"><b>Name:</b> [text-59]</p> 16 <p style="font-size: 14px;"><b>Phone:</b> <a href="tel:[tel-116]">[tel-116]</a></p> 17 <p style="font-size: 14px;"><b>Email:</b> [Email]</p> 18 19 <p style="color: #999; font-size: 12px;"> 20 Message sent from <b>[_site_title] ([_site_url])</b> 21 </p>
Samat säännöt pätevät: logo neliönmuotoinen, HTML-muoto-valintaruutu valittuna, makrot korvattu omillasi. Mukautetut fontit Google Fontsista eivät toimi sähköpostissa; käytä järjestelmäfonttipinoja (Arial, Helvetica, sans-serif).
⁉️🤔 Usein kysytyt kysymykset
Miksi CF7 näyttää "Message sent", mutta sähköpostia ei tule?
CF7 vastaa tietojen keräämisestä ja niiden välittämisestä WordPressille, ei lopullisesta toimituksesta. "Success"-vastaus tarkoittaa, että AJAX-pyyntö suoritettiin ilman virheitä. Varsinainen sähköpostin lähetys tapahtuu taustalla
wp_mail()-funktion kautta, ja jos jokin menee pieleen siinä vaiheessa (hosting estimail()-funktion, From-osoite epäonnistui validoinnissa, sähköposti meni roskapostiin), CF7 ei näytä virhettä. Siksi lomake kannattaa aina testata lähettämällä oikeaan postilaatikkoon määrityksen jälkeen.
Onko SMTP-lisäosa pakollinen?
Ei pakollinen, mutta erittäin suositeltava. Ilman SMTP:tä sähköpostisi lähettää PHP:n
mail()-funktio, joka ei todenna lähettäjää, ei allekirjoita DKIM:ia ja jonka roskapostisuodattimet usein estävät. SMTP-lisäosa lisää todennuksen ja parantaa dramaattisesti perillemenoa. Käytännössä olemme nähneet kymmeniä sivustoja, joissa lomake "toimi", mutta sähköpostit menivät roskapostiin tai eivät koskaan saapuneet perille. Kun SMTP otettiin käyttöön Post SMTP:n tai FluentSMTP:n kautta, ongelma katosi 5 minuutissa.
Mit teen, jos CF7 lakkasi toimimasta WordPress-päivityksen jälkeen?
Tarkista ensin PHP-versiosi; CF7 vaatii PHP 7.4:n tai uudemman (varmista virallisesta dokumentaatiosta). Ota sitten välimuisti- ja optimointilisäosat pois päältä: ne rikkovat usein REST API:n, kun ydin päivittyy. Jos tämä ei auta, vaihda väliaikaisesti WordPressin oletusteemaan ja testaa lomake. Useimmissa tapauksissa kyse on ristiriidasta välimuisti- tai tietoturvalisäosan kanssa, joka ei ole vielä sopeutunut uuteen ydinversioon.
Miten tarkistan, toimiiko REST API?
Avaa
https://your-site.com/wp-json/selaimessasi. Jos näet JSONia, jossa on luettelo käytettävissä olevista päätepisteistä, REST API on toiminnassa. Jos saat 404-virheen tai tyhjän sivun, optimointi- tai tietoturvalisäosa on ottanut REST API:n pois päältä. Tämä on nopein vianmääritysmenetelmä: jos päätepiste palauttaa JSONia, CF7:llä on kaikki mitä se tarvitsee toimiakseen. Etsi REST API -asetuksia lisäosista kuten Clearfy, Perfmatters, WP-Optimize tai tietoturvaratkaisuista kuten Wordfence.
Voinko lähettää sähköposteja liitetiedostoilla CF7:n kautta?
Kyllä, CF7 tukee tiedostojen lataamista
[file]-kentän kautta. Syötä sähköpostiasetuksissa "Attachments"-kenttään kyseisen kentän makro, ja tiedosto liitetään sähköpostiin. Useimmat palveluntarjoajat rajoittavat liitetiedostojen kokoa PHP:nupload_max_filesize-asetuksella (yleensä 2-8 Mt). Useita latauksia varten käytä erillisiä kenttiä. Jos sähköpostit liitetiedostoineen eivät lähde, mutta lomake toimii ilman liitteitä, ongelma on kokorajoituksessa; pienennä tiedostokokoja tai pyydä palveluntarjoajaasi nostamaan rajaa.
Mitä käyttää vuonna 2026: CF7 + SMTP vai vaihtoehdot?
Contact Form 7 on edelleen paras ilmainen lisäosa WordPress-lomakkeille, jos tarvitset muokattavuutta etkä pelkää kaivautua asetuksiin. Mutta sähköpostin toimitusongelma on sisäänrakennettu WordPressin arkkitehtuuriin: mail()-funktio on luonnostaan epäluotettava.
Joten vuoden 2026 kaava on: Contact Form 7 + SMTP-lisäosa. Asenna FluentSMTP (ilmainen, kevyt, ei mainoksia hallintapaneelissa) tai Post SMTP ja määritä lähetys Gmail API:n, Brevon tai Mailgunin kautta. Nämä kaksi komponenttia yhdessä antavat sinulle: rajattoman lomakkeen muokkauksen + yritystason perillemenon. Hinta: 0 $, asennusaika: 10 minuuttia.
Jos haluat lomakkeen, joka toimii "suoraan laatikosta" ilman säätöä, harkitse WPFormsin tai Ninja Formsin käyttöä. Ne ovat maksullisia, mutta SMTP-lähetys on sisäänrakennettu oletuksena niiden omien palvelimien kautta. Valinta on sinun: CF7:n joustavuus vai kaupallisten ratkaisujen yksinkertaisuus.



