PHP mail()

Status
Niet open voor verdere reacties.

jorikke

Gebruiker
Lid geworden
13 jul 2011
Berichten
27
Ik probeer via PHP een mail te versturen naar een vast emailadres. Het adres waar deze moest aankomen is een gmail.com adres. Ik heb echter niets binnengekregen, ook niet in de spambox en en ik heb zelfs een dagje gewacht, maar niks. Nu heb ik het eens geprobeerd om diezelfde mail naar mijn hotmail.com adres te sturen, en wat blijkt, hier komt deze gewoon direct aan, terwijl het dezelfde code is met alleen een ander mailadres er in. Ook op de lokale mailserver lijkt niets binnen te komen als ik daar een adres van probeer. Kan het zijn dat bepaalde servers mijn mail tegenhouden of anders met de headers om gaat en deze niet kan uitlezen? Hier de code die ik gebruik:

PHP:
$bericht = "Goed nieuws! Er is weer iemand die interesse heeft in Cyfers en zijn/haar e-mailadres heeft achter gelaten. Het e-mailadres is:<br><br>".$adres;
$headers = "From: Cyfers.nl <geenantwoord@cyfers.nl>\n"; 
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=utf-8\n";
$mail = mail('xxx@gmail.com', 'Nieuw adres op Cyfers', $bericht, $headers);
 
is het e-mail adres wel goed?

want ik krijg heb gewoon binnen op m'n Gmail account...
 
ja hoor, ik heb het zelfs met meerdere adressen geprobeerd, dus het moet aan de mailserver liggen die de mail de deur uit doet. Iets met ini-settings SMTP problemen waar hotmail wel mee om weet te gaan en gmail niet?
 
probeer dit eens erbij te zetten in je script:

PHP:
ini_set('SMTP', 'joumailserver');
ini_set('smtp_port', 25);

poort kan anders zijn
en je moet mailserver ff invoeren

suc6
 
Waarschijnlijk accepteert g-mail de headers niet of heb je te weinig headers.

wat bij mij wel werkt zijn deze 2 headers vervangen:

PHP:
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-type: text/html; charset=utf-8\n";

en deze er neer te zetten :

PHP:
$html =true;


$headers	.= ($html) ? 'MIME-Version: 1.0' . PHP_EOL : '';
$headers	.= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . PHP_EOL : '';
 
Het is ook mogelijk dat je server (die neem ik aan gedeeld is) op de één of andere manier op gmail's zwarte lijst terecht is gekomen. Als je op je server een webmail programma als Roundcube hebt kun je proberen daarmee een email naar je gmail adres te sturen, als dat ook niet lukt weet je in elk geval dat je script niet het probleem is.

Krijg je trouwens wel een bericht terug met een reden voor het niet afleveren?
 
ik vermoed dat gmail ons mogelijk op een zwarte lijst heeft geplaatst (komt dat vaker voor?) aangezien ik van een andere site op de server ook niks meer binnen krijg. Ik heb het ook eens met roundcube geprobeerd en ook hier krijg ik (nog) niks binnen op mijn gmail, wel op hotmail. Wat zou ik hier aan kunnen doen?
 
ik heb de pagina bekeken, maar krijg geen duidelijke oplossing. Wel heb ik een mail queue gevonden op de server. Deze is vast voor mails die nog niet zijn verzonden of iets dergelijks? Alle mails naar mijn g-mailadres staan hier nog in. De header van een van die berichten:

Received: (qmail 1169 invoked by uid 48); 18 Jun 2012 23:37:16 +0200
Date: 18 Jun 2012 23:37:16 +0200
Message-ID: <20120618213716.1167.qmail@vps3046.spotids.com>
To: xxx@gmail.com
Subject: Test message from Roundcube
From: xxx@hotmail.com

de received staat neem ik aan voor het ontvangen van het verzoek om af te leveren en niet voor dat het bericht daadwerkelijk is ontvangen is? Kunnen we hier misschien iets mee?
 
probleem helaas nog niet opgelost. Wel is nu dus zeker dat de code wel klopt, de mail komt immers in de mail queue, maar wordt helaas niet verzonden naar gmail. Vandeweek kreeg ik een mail van de mailserver dat de mail niet kon worden verzonden, hier stond ook een foutmelding bij. Het volledige bericht:

Hi. This is the qmail-send program at vps3046.spotids.com.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

<xxx@gmail.com>:
System resources temporarily unavailable. (#4.3.0)
I'm not going to try again; this message has been in the queue too long.

--- Below this line is a copy of the message.

Return-Path: <xxx@spotids.com>
Received: (qmail 1290 invoked by uid 48); 18 Jun 2012 23:49:07 +0200
Received: from 81.70.243.24 ([81.70.243.24]) by webmail.spotids.com (Horde
Framework) with HTTP; Mon, 18 Jun 2012 23:49:07 +0200
Message-ID: <20120618234907.1499526wwa9fn68s@webmail.spotids.com>
Date: Mon, 18 Jun 2012 23:49:07 +0200
From: xxx@spotids.com
To: xxx@gmail.com, xxx@hotmail.com
Subject:
MIME-Version: 1.0
Content-Type: text/plain;
charset=ISO-8859-1;
DelSp="Yes";
format="flowed"
Content-Disposition: inline
Content-Transfer-Encoding: 7bit
User-Agent: Internet Messaging Program (IMP) H3 (4.3.9)

test

kunnen we hier wat mee?
 
Ik heb nog even rondgekeken maar ik kom er niet uit wat hier verder aan de hand zou kunnen zijn, wellicht dat je host kan helpen? Aangezien het versturen uit Roundcube (door hen geleverd neem ik aan) ook niet lukt is het iets waar ze mee zouden moeten helpen vind ik.
 
Heb je de mogelijkheid om het script op een andere host uit te voeren (localhost)?

Het lijkt er inderdaad op dat het script zou moeten werken (kan het niet testen op m'n tablet), vooral ook omdat het naar jouw zeggen bij hotmail wel binnenkomt...

Als je server inderdaad op een zwarte lijst bij gmail staat lijkt het me aan je webhost aanbieder om hier iets aan te doen (hier kom je dus achter door het op een andere host te testen...)
 
inmiddels na een maand alles aan de praat gekregen! Zoals gezegd lag de fout niet aan het script. Voor alle mensen die googelen en tegen hetzelfde probleem aanlopen hier de oorzaak en de oplossing:

Mails komen in de queue van de server terecht. Na een bepaalde tijd krijg je hier een notificatie van met de volgende melding er in:
System resources temporarily unavailable. (#4.3.0)
I'm not going to try again; this message has been in the queue too long.

Deze mail wordt verzorgd door de mailserver. In de mail kom je ook het woord "qmail" tegen, dit is de MTA (mail transfer agent) van je server. Qmail is echter (na een beetje zoeken) een beetje achterhaald. Daarom heb ik besloten om de MTA te wisselen van qmail naar postfix met deze handleiding. Het duurde even met downloaden en installeren, en ik had er ook totaal geen verstand van (heb alleen gedaan wat er in de handleiding stond zonder een idee te hebben wat ik precies deed) maar alles werkt nu als een zonnetje, geweldig!

Iedereen die me geprobeerd heeft te helpen alsnog bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan