[php] sendmail krijgt geen email adres.

Pagina: 1
Acties:
  • 162 views sinds 30-01-2008
  • Reageer

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 12-02 10:50
Als ik op m'n gentoo webserver vanuit php de mail functie aanroep met een correct email adres wordt er geen maitlje gestuurd.

De php functie mail geeft gewoon true terug, dus php krijgt geen error van sendmail.
code:
1
2
3
4
5
if(mail("mijnadres@example.com","test","test mail")){
 echo'verstuurd';
} else {
 echo'niet verstuurd';
}

Mijn sendmail connect naar een externe mail server, en als ik sendmail vanaf de cli probeer gaat het wel goed. en krijgt ik wel een mailtje.
code:
1
echo "test mail" | sendmail -i mijnadres@example.com

Ik gebruik de instellingen in /etc/ssmtp/ssmtp.conf om de mail te relayen naar mijn windows mail server, deze pakt de mail netjes op als hij vanaf de commandline verstuurd is via sendmail of ssmtp.

Als ik in mijn apache error_log kijk zie ik dat sendmail geen email adres krijgt van php en dus geen maitlje stuurt. Vreemd genoeg is deze error volledig onbekend voor google.
code:
1
sendmail: No recipients supplied - mail will not be sent


Ik weet niet waar ik nog meer kan kijken, de php.ini moet goed zijn, want sendmail wordt aangeroepen, ik heb het pad van sendmail op allerlei manieren ingevoerd, en ook de nodige sendmail opties geprobeerd. allemaal no go.

Ik gebruik php 4.3.10 en de volgende apache: Apache/1.3.32 (Unix) (Gentoo/Linux) mod_gzip/1.3.26.1a PHP/4.3.10

Iemand enig idee? php doet z'n werk, want apache geeft de error van sendmail weer, en sendmail doet vanaf de cli ook z'n werk, WTF?

[ Voor 4% gewijzigd door killercow op 21-12-2004 13:32 ]

openkat.nl al gezien?


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 12-02 10:50
anyone, al is het maar de kleinste aanwijzing?

pls?

openkat.nl al gezien?


  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04-2025
Wat zijn je mailinstellingen in /etc/php.ini?

  • DiedX
  • Registratie: December 2000
  • Laatst online: 23:15
Da's vreemd. Ik zou alleen wel nog een header meesturen met "Mail-From". Wellicht dat dat je probleem oplost?

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 12-02 10:50
m'm mail instellingen in zijn ondertussen alles wat zinnig leek geweest, oa: sendmail -a, sendmail -t, /user/sbin/sendmail -a, sendmail, /usr/sbin/sendmail

Ook heb ik direct op ssmtp gekoppeld vanuit php, omdat sendmail hier een symlink naar is, maar ook dat geeft het zelfde.

Als het pad naar sendmail verkeerd is lijkt het mij dat apache nooit met een error vanuit sendmail kan terugkomen.

Als ik zendmail vanaf de command line zonder email adres doe krijg ik de zelfde error.

Mijn sendmail ondersteund geen -t optie, en dus kan ik sendmail niet laten scannen op email adressen in de meegegeven headers( cc, bcc etc)

Ook een volledige header meegeven doet niets. Ik denk dat php op een of andere manier de volgorde van de velden die sendmail verwacht verkeerd heeft oid, ik zal wel ff in de source gaan snuffelen om te zien hoe het sendmail command echt aangeroepen wordt.

openkat.nl al gezien?


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

en wat staat er in de logfiles ?

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 12-02 10:50
welke logfiles?

de errorlog van apache geeft dus
code:
1
sendmail: No recipients supplied - mail will not be sent


Ik kan zo snel geen andere logfiles vinden, (ook niet van ssmtp enzo) was is de default locatie van die dingen?

openkat.nl al gezien?


Verwijderd

Ik denk dat je toch eens naar headers in je mailbericht moet kijken..

  • killercow
  • Registratie: Maart 2000
  • Laatst online: 12-02 10:50
ok ok, hier komen de verschillende stukken php:

(ps, de mail werkt perfect vanaf een windows machine met de zelfde php, maar natuurlijk een andere mta)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
mail("test@example.com","subject","message");
?>


<?

 $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
    $headers .= "From: testmailer <testmailer@mydomain.com>\r\n";
    $headers .= "To: Test <test@example.com>\r\n";
    $headers .= "Reply-To: testmailer <testmailer@mydomain.com>\r\n";
    $headers .= "X-Priority: 2\r\n";
    $headers .= "X-MSMail-Priority: Normal\r\n";
    $headers .= "Return-Path: testmailer@mydomain.com\r\n";
    $headers .= "X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1106\r\n";
    $headers .= "X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0)";

mail("test@example.com","subject","message",$headers);
?>


Of natuurlijk met /n line breaks,

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$headers .= "MIME-Version: 1.0\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\n";
    $headers .= "From: testmailer <testmailer@mydomain.com>\n";
    $headers .= "To: Test <test@example.com>\n";
    $headers .= "Reply-To: testmailer <testmailer@mydomain.com>\n";
    $headers .= "X-Priority: 2\n";
    $headers .= "X-MSMail-Priority: Normal\n";
    $headers .= "Return-Path: testmailer@mydomain.com\n";
    $headers .= "X-MIMEOLE: Produced By Microsoft MimeOLE V6.00.2800.1106\n";
    $headers .= "X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0)";

mail("test@example.com","subject","message",$headers);


Is doesn't want to work :(

openkat.nl al gezien?


  • killercow
  • Registratie: Maart 2000
  • Laatst online: 12-02 10:50
ik heb het opgelost door gewoon direct een stream naar /usr/sbin/sendmail te openen en de verschillende headers gevolgd door een \n er heen te sturen.

tis niet echt een toffe oplossing en volgens de source van php gebeurt er in de mail functie van php het zelfde, maar toch gaat er daar iets fout.

(ik gebruik nu dus popen, en pwrite etc.)

openkat.nl al gezien?


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 07:34
Mja, de ene sendmail wrapper is wat vergevelijker dan de andere. Hier plakt postfix ook userid@www0.fastline.no als het from adres omdat klanten dat niet opgeven. Ik denk dat ik binnenkort maar es een MX record voor www0 aanmaak en vervolgens een rewrite rule voor dat domein maak die alles voor user@www0.fastline.no omgooit naar postmaster@user, aangezien hier user altijd het domein is van de gebruiker.

Ik snap niet hoe dat tegenwoordig zit met die mail rotzooi van PHP, maar zolang ik al webservers beheer zie ik al scripts van mensen zonder geldig from adres en krijg ik de bounces in mn mailbox (qmail bijvoorbeeld bedacht er gewoon root@webserver bij, postfix is dan nog zo creatief om er www-data@webserver van te maken :X)
Pagina: 1