Email versturen (Drupal): verschil tussen versies
(Nieuwe pagina aangemaakt met 'File:UbercartEmailprobleem.png|thumb|Foutmelding: Unable to send e-mail. Please contact the site administrator of the problem persist. In dit geval is er gelukkig...') |
|||
Regel 96: | Regel 96: | ||
* Kloppen de email-gerelateerde instellingen op deze Drupal-site? | * Kloppen de email-gerelateerde instellingen op deze Drupal-site? | ||
* Is het SPF-record correct ingevuld? | * Is het SPF-record correct ingevuld? | ||
+ | |||
+ | == Lente 2015: Geen orderbevestigingen == | ||
+ | |||
+ | ''' Probleem ''' | ||
+ | |||
+ | Orders van ''alle'' webwinkels komen sinds begin deze maand niet meer aan in het betreffende Gmail-verzamel-emailadres. | ||
+ | |||
+ | ''' Aanvullende gegevens ''' | ||
+ | |||
+ | * Dit betreft meerdere webwinkels, terwijl er niets aan die webwinkels is veranderd | ||
+ | * Het probleem treedt op op meerdere computers | ||
+ | * De enige gemeenschappelijke factor, is het betreffende Gmail-account | ||
+ | * Geen orders in de spambox | ||
+ | |||
+ | ''' Mogelijke oorzaken ''' | ||
+ | |||
+ | * Gmail heeft z'n spaminstellingen verscherpt. Een hoop spam komt sowieso niet aan, ook niet in de spambox. | ||
== Zie ook == | == Zie ook == |
Versie van 9 sep 2015 08:16
In diverse situaties verstuurt Drupal e-mail, bv. order-bevestigingen door Übercart of account-bevestigingen. Dat gaat niet altijd vlekkenloos.
De basis: php's mail()
Drupal gebruikt een wrapper om de PHP-functie mail()
:
bool mail(string $to, string $subject, string $message [, string $additional_headers [, string $additional_parameters ]] )
mail
functioneert als een mailclient, en deze maakt gebruik van de mailserver en bijbehorende specificaties, die je voor een deel oa. met phpinfo()
kunt achterhalen.
Afhankelijk van de situatie, kan het helpen om te verifiëren of je vanuit PHP kunt e-mailen. Zie artikel PHP voor details.
Begin bij het logboek
Je weet wel:
Drupal: Reports > Recent log entries
Als deze entry er niet staat, moet je wellicht module Database logging en/of Syslog aanzetten.
Het logboek houdt alleen bij of email met success is afgeleverd bij de mailserver. Dat zegt dus niet of de mailserver de mail met succes heeft kunnen versturen.
Anders kan het PHP-logboek ook helpen:
less /var/log/php/error.log
Controleer de afzender (site information)
In de voortdurende strijd tegen spam, controleren veel ontvangende mailservers of de verzendende mailserver wel echt bestaat. Dat kan een probleem zijn, bv. als de betreffende website op een ontwikkelserver staat zonder domeinnaam, maar met alleen een IP-adres. Of als de site een echte naam heeft, maar op een ontwikkelserver draait, zonder die domeinnaam.
De afzender staat geconfigureerd onder Site information.
Übercart? Controleer de afzender!
In november 2012 had ik bij het klonen van een Übercart-site vergeten om het afzender-e-mailadres te veranderen. Bevestigingen van nieuwe accounts werden dus wel goed verzonden, maar orderbevestigingen niet.
In Drupal 6 moet je de afzender op twee of drie plekken aanpassen onder Conditionele acties.
Externe SMTP-server gebruiken
In het geval van een eigen ontwikkelserver, zou het heel prettig zijn, als je een externe SMTP-server kunt specificeren, zodat Drupal alleen nog maar voor e-mailclient hoeft te spelen. Bash heeft hier een commando voor: nail
ipv. mail
, dus de mogelijkheden zijn er.
Het is me onduidelijk of dit zomaar kan, maar het is wel iets waar meer mensen zich mee bezig hebben gehouden:
- http://www.tonyrocks.com/index.php/blogging/content-management-systems/configuring-drupal-to-use-an-external-smtp-server/
- http://www.google.com/search?q=drupal+use+external+smtp+server
Casus: Storing order-notificatie-e-mails (Drupal 6, mei 2012)
Dit betreft een storing waarbij de foutmelding gemeld werd.
Casus: Geen email na klonen webwinkel (Drupal 6 & Übercart, nov. 2012)
Zie beschrijving in een eerder hoofdstuk.
Casus: Geen email na migratie (Drupal 6 & Übercart, april 2015)
Dit probleem trad op na migratie van een Übercart-site naar een eigen VPS icm. een Email-Only-abonnement van TransIP. In de praktijk blijk je niet naar jezelf te kunnen emailen. Ik heb hier contact over gehad met TransIP, maar dat heeft tot op heden weinig opgeleverd.
Casus lente & zomer 2015: Vaak geen email vanuit Übercart
Probleem & aanvullende gegevens
Bij een bepaalde Drupal 6-webwinkel ontvangen klanten vaak geen orderbevestiging:
- Drupal-log vermeldt geen problemen
- PHP-log vermeldt geen problemen
- In het bijbehorende email-only-abonnement staat spamfiltering op z'n laagst, nog afgezien dat spamfiltering betrekking heeft op binnenkomende email, en niet op uitgaande email
- Bij een test op 5 augustus kreeg ik zelf wel gewoon een orderbevestiging
- Er komt geen email met fouten retour.
Overgebleven mogelijke oorzaken
- Kloppen de email-gerelateerde instellingen op deze Drupal-site?
- Is het SPF-record correct ingevuld?
Lente 2015: Geen orderbevestigingen
Probleem
Orders van alle webwinkels komen sinds begin deze maand niet meer aan in het betreffende Gmail-verzamel-emailadres.
Aanvullende gegevens
- Dit betreft meerdere webwinkels, terwijl er niets aan die webwinkels is veranderd
- Het probleem treedt op op meerdere computers
- De enige gemeenschappelijke factor, is het betreffende Gmail-account
- Geen orders in de spambox
Mogelijke oorzaken
- Gmail heeft z'n spaminstellingen verscherpt. Een hoop spam komt sowieso niet aan, ook niet in de spambox.
Zie ook
Bronnen
- http://api.drupal.org/api/drupal/includes--mail.inc/function/drupal_mail_send/6 - De API die mailen verzorgd
- http://drupal.org/node/356525 - Reroute Email Module om e-mailen te testen
- http://drupal.org/node/201981 - Aardig overzicht van verschillende debug-mogelijkheden
- http://www.ubercart.org/forum/support/9146/after_completing_order_unable_send_email_please_contact_site_admin_if_problem_per
- http://www.ubercart.org/docs/user/8590/email_notifications
- http://www.ubercart.org/docs/user/305/notification_settings
php's mail()