2010-05-27 6 views
2

Je cherche une liste de fonctions PHP intégrées qu'un programmeur pourrait utiliser pour envoyer un email. La réponse évidente ici est mail(), mais je cherche également une liste de fonctions que quelqu'un pourrait utiliser pour ouvrir manuellement une connexion à un MTA, ou engendrer un processus sur la machine locale qui pourrait à son tour envoyer un email en utilisant sendmail, Postfix, etc.Quelles sont toutes les façons dont un programmeur pourrait utiliser PHP pour envoyer un courriel?

Le contexte ici est que je veux analyser un grand codebase inconnu pour le code qui est l'envoi de courrier électronique (parce que nous trouve déjà un appel à mail(), et ne le fait pas)

+2

Je pense que votre meilleur pari est de grep pour le contenu de l'email ou le sujet. Ils pourraient utiliser un appel système externe arbitraire utilisant des backticks, que vous auriez du mal à trouver. – zombat

+0

Le courrier électronique est généré dynamiquement à partir de la base de données. –

Répondre

2

fsockopen est très probablement l'autre.

1

IMAP peut être une autre en fonction de la façon dont PHP a été configuré ... http://www.php.net/manual/en/ref.imap.php

+0

Bienvenue sur le site bob, il est préférable de regrouper toutes vos réponses sous une seule question que d'afficher plusieurs réponses. –

+0

Merci. Je sais, mais étant nouveau et non enregistré, je n'ai pas la permission d'inclure plus d'une URL ou de commenter sous une autre réponse. –

+0

@Ignacio En actualisant la fonction imap_mail(), ces fonctions s'ouvrent et fonctionnent sur un flux IMAP vers n'importe quel service local ou distant pris en charge, d'après ce que je comprends. En plus de l'administration régulière de la boîte aux lettres, cette famille de fonctions se comporte comme si elle insérait simplement un message dans n'importe quelle boîte aux lettres. De là, il pourrait éventuellement être envoyé par le serveur de messagerie si dans un certain type de file d'attente. –

0

Il suffit de regarder la mail()docs, il ressemble à Pear::Mail serait un bon candidat, ou au moins mieux.

+0

Mais Pear :: Mail finirait par avoir besoin d'utiliser un mécanisme PHP interne pour implémenter ses fonctionnalités. Il y a probablement des centaines de bibliothèques de publipostage tierces. –

+0

@Alan Storm Bien sûr, mais l'analyse de la base de code ne trouverait pas nécessairement l'utilisation par PEAR de la fonction 'mail' si elle est incluse ailleurs sur le système. – ceejayoz

+0

@ceejayoz Hmph. Dans ce cas, c'est le cas: http://svn.php.net/viewvc/pear/packages/Mail/trunk/Mail.php?view=markup @Alan StormHave vous avez été en mesure de savoir quel était le problème réel avec 'mail()' est? Je soupçonne que la plupart des centaines de bibliothèques de diffusion tierces ouvrent des sockets au MTA de la même manière que 'mail()'. –

1

façon sournoise serait de désactiver votre courrier local et vérifiez vos journaux d'erreurs php pour les erreurs sendmail vous

:)

Cela devrait empêcher php de pouvoir envoyer des emails localement

+0

Non si le programme ouvre des connexions directes avec un serveur de messagerie sur un autre ordinateur. –

+0

C'est pourquoi j'ai dit localement :) Dans tous les cas, il y a toujours une adresse IP dans l'en-tête de l'email, donc vous pouvez voir de quel serveur l'email a été envoyé.Il suffit donc de désactiver le service de messagerie sur ce serveur et de rechercher les erreurs. Ou même simplement bloquer le port de messagerie de l'hôte avec PHP en utilisant iptables. –

Questions connexes