Comment envoyer un courrier électronique avec php sans l'email atterrissage automatiquement dans la boîte poubelle

StackOverflow https://stackoverflow.com/questions/4529528

Question

Im en utilisant la fonction de messagerie () PHP pour envoyer des e-mails. Mais tous mes mails atterrissent dans la boîte automaticly poubelle. Y at-il un moyen d'empêcher cela? Si oui, où dois-je lire pour en savoir plus à ce sujet.

Voulez-vous que vous recommandons d'utiliser phpmailer?

Le meilleur de ce qui concerne, Alexander

Était-ce utile?

La solution

Je suppose que vous voulez dire boîte thrash à la fin du récepteur. Donc, fondamentalement, le serveur de réception de courrier électronique est au sujet comme spam. Cela peut se produire si:

1) L'adresse IP que vous envoyez à partir est déjà mis à l'index pour spamming (cela arrive souvent dans l'hébergement mutualisé)

2) L'IP et le domaine sont relativement nouveaux et inconnus.

(Notez que plusieurs fois, des bulletins d'information des sites bien établis se retrouvent aussi dans le spam).

Si votre IP dédié ses, ensuite le réglage RDNS pour l'IP, pour correspondre au nom de domaine résoudra très probablement la question. Une autre pratique habituelle est d'alerter le récepteur (si elle est abonnée sur votre site) pour vérifier leur thrash / dossier spam et whitelist votre adresse e-mail dans leur compte de messagerie.

Cordialement,

JP

Autres conseils

Pour ne pas se vanter, mais je suis un ingénieur du serveur de messagerie. filtres anti-spam recherchent un certain nombre de « problèmes » avec le courriel et ajouter des « points » pour chaque petit problème. Si un nombre suffisant de ces problèmes s'additionnent, l'e-mail pourrait être (un des):  refusé pendant SMTP,  mis en déroute dans le dossier Spam,  acheminés vers la boîte de réception, mais étiqueté " Spam "  en liste noire (mystérieusement perdu).

Pour éviter ce problème, vous voulez résoudre les problèmes plusieurs, et cela réduira votre score de spam ou de conflit politique anti-spam. Vous voulez sortir de votre chemin et d'apprendre un peu de « email les meilleures pratiques » en fait, si vous voulez obtenir les meilleurs résultats.

1 est question: ne pas envoyer un courriel à un destinataire, à partir d'un script PHP sur un serveur web. Pas directement au destinataire, de toute façon.

logiciel anti-spam appris il y a longtemps à la méfiance e-mail sur le Web, à cause de toutes les installations non sécurisées de formmail.pl, etc.

La CORRECTEMENT d'envoyer un courriel à partir d'un serveur Web est d'envoyer l'e-mail par une boîte aux lettres valide sur un serveur de messagerie valide. Donc, si votre site d'hébergement de messagerie, créez une boîte aux lettres appelée par exemple « website-notification@websitedomain.com ». Appelez-ce que vous aimez. Maintenant, vous voulez que votre script PHP pour envoyer l'e-mail -through- cette adresse, en utilisant SMTP authentifiées. Je vais laisser le processus d'apprendre à utiliser SMTP à partir de PHP assermentée comme un exercice d'apprentissage pour vous (il y a de nombreux tutoriels en ligne).

Une fois que vous envoyez des e-mails via votre serveur SMTP valide, peut-être votre email est mieux livré .. mais ne vous arrêtez pas là. Vous pouvez toujours le même problème à un autre domaine de livraison e-mail ...

2) Comme quelqu'un d'autre noté, assurez-vous ne manquent pas à: De: Objet: et date :. La date doit être dans le format de date standard pour le courrier électronique ou des filtres anti-spam seront Flagg il. Si vous manquez l'en-tête que vous aurez marqué pour les points de spam.

3) Votre adresse FROM doit être une boîte aux lettres VALIDE. Ne pas envoyer un courriel avec « De: noreply@yourdomain.com ». L'adresse de doit exister parce que certains logiciels anti-spam fera un « expéditeur Vérifiez » pour vérifier si l'adresse émettrice est faux ou faux.

Sur votre serveur de messagerie, créez noreply @. Personne ne vous dit avoir fait vérifier cette boîte aux lettres ... vous pourriez avoir une règle qui autodeletes tout le courrier à l'adresse sans contrôle. Le point clé est, si d'autres serveurs de messagerie obtenir un « 550 Utilisateur inconnu » quand ils se connectent à votre MX et tester cette boîte aux lettres, votre e-mail pourrait être marqué comme spam.

4) Si votre DNS de domaine a un enregistrement SPF, soit 100% sûr qu'il énumère tous les IP qui peuvent envoyer des e-mail pour votre domaine. En cas de doute, ne pas utiliser les enregistrements SPF, car un mauvais enregistrement SPF blessera taux de livraison.

5) Ne pas utiliser les services « Vie privée d'enregistrement de domaine » ou « Domain Proxy » qui cachent vos informations de contact de votre WHOIS. Tout expéditeur légitime du courrier électronique n'a pas besoin de cacher les informations de contact du domaine. filtres anti-spam vérifieront cela.

6) Connaître l'adresse IP de votre serveur de messagerie, et vérifiez régulièrement qu'il ne soit pas « mis à l'index » à SpamCop, Spamhaus, ou les listes noires de Barracuda Spam. Google plus.

Espérons que ma réponse vous aide, et convoie il n'y a pas de réponse unique et simple à tout cela. Ces jours-ci si vous voulez envoyer des courriels, vous devez être au courant de ces questions.

La réponse de JP est en partie correcte, mais il pourrait aussi être votre tête est dans l'e-mail que je sais par expérience que cela envoie des choses au dossier de courrier indésirable essayez ce qui suit;

définir les e-mails à quelque chose de votre domaine comme sans réponse ou une réponse valide.

$to      = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
    'Reply-To: webmaster@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);

Cela a probablement quelque chose à voir avec votre client de messagerie et la configuration de spam. Essayez d'ouverture de compte sur gmail.com et l'envoi d'e-mail là-bas, si elle est OK, vous savez qu'il est votre problème serveur / client de courrier électronique. Si ce n'est pas, postez votre code PHP et en-têtes de courrier électronique complet de l'e-mail que vous avez.

Cela se produit parce que plusieurs fois d'un, en-têtes sont manquantes / si sa signature de la clé de domaine serveur de messagerie bien connu est pas présent, ou quelque chose comme ça. Si vous disposez déjà d'un serveur de messagerie distinct, vous devriez vérifier si vous pouvez utiliser le package Pear PHP Mail pour envoyer des courriels en utilisant votre serveur de messagerie, plutôt que directement via la fonction de messagerie. C'est ce que je trouve pratique, comme beaucoup plus flexible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top