2017-10-13 3 views
-1

J'ai un formulaire simple pour envoyer un courriel au système PHP qui fonctionne très bien pour moi, parce que mon webmail vient de One et ils supportent les scripts e-mail côté serveur. Mais le problème est que Hotmail ne fonctionne pas, donc mon formulaire ne fonctionne pas pour les emails qui ne supportent pas ce que One supporte. J'ai regardé à travers Internet pour trouver la solution parfaite, mais PHP n'est pas quelque chose que j'aime utiliser, donc jouer avec ce n'est pas ma tasse de thé. Incase vous vous demandez ce que mon dossier de messagerie PHP ressemble actuellement, jetez un oeil:Formulaire d'email ne fonctionne pas pour hotmail

<?php 
$name = $_POST['name']; 
$lastname = $_POST['lastname']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$workshop = $_POST['workshop']; 
$location = $_POST['location']; 
$information = $_POST['information']; 
$contact = $_POST['contact']; 


if(!isset($_POST['name'])) { die("No Direct Access"); } 

    $spam = $_POST['username']; 

    if($spam) { 
     die("error: Spam"); 
     } else { 

     } 


$formcontent=" Naam: $name \n\n Achternaam: $lastname \n\n Email: $email \n\n Telefoon: $phone \n\n Workshop: $workshop \n\n Locatie: $location \n\n Contacten via: $contact \n\n Extra informatie: $information"; 
$recipient = "[email protected]"; 
$subject = "Workshop klant"; 
$mailheader = "From: ".$_POST["email"]."\r\n"; 
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!"); 
header('Location: verzonden.html'); 

Comme vous pouvez le voir, ce sont des choses très basique. C'est pourquoi je suis venu à l'endroit où les gens en savent beaucoup plus que moi.

Merci d'avoir pris le temps.

+0

En usurpant l'adresse e-mail «de», vous n'êtes fondamentalement pas différent d'un spammeur pour tous les fournisseurs de messagerie. C'est pourquoi toutes les grandes entreprises envoient des e-mails à partir d'un compte d'envoi standard comme "noreply @ ...". Vous devrez configurer un véritable compte e-mail pour envoyer si vous souhaitez que les principaux fournisseurs acceptent votre e-mail. – neuromatter

+0

J'utilise généralement quelque chose comme Amazon SES ou Sendgrid pour ce genre de chose et cela fonctionne très bien. –

Répondre

0

N'entendant pas cela pour endosser Mailgun sur d'autres solutions. C'est juste ce que j'ai du code à portée de main pour illustrer. Envoyer du courrier n'est pas une chose banale avec tous les problèmes de spam et de logiciels malveillants que le monde est en proie. Le courrier sera bloqué par les principaux fournisseurs au premier signe de quelque chose de vague. Si vous devez envoyer du courrier à partir d'un site Web, vous devez créer un compte à partir duquel envoyer votre courrier. Faites une recherche sur le Web pour "Envoi de courrier en masse" pour voir plus d'options. Beaucoup sont gratuits pour une utilisation légère ... Certains sont gratuits pour une utilisation même assez importante. Si vous utilisez Mailgun, vous téléchargez leur PHP dans un dossier de votre serveur Web. Ensuite, quelque chose comme ceci:

Dans un fichier de configuration quelque part:

// Mailgun connection info. 
$GLOBALS['MAILGUN_API_KEY'] = '<your key from MailGun>'; 
$GLOBALS['MAILGUN_MAIL_DOMAIN'] = '<Your Domain>'; 

et une fonction pour envoyer du courrier:

<?php 
require './mailgun-php/vendor/autoload.php'; 
use Mailgun\Mailgun; 
function mailgunSend($mailFrom, $mailTo, $mailSubject, $mailText, $mailHTML = null, $mailCC = null, $mailBCC = null, $mailAttachmentsArray = null) { 
    $sendArray['from'] = $mailFrom; 
    $sendArray['to'] = $mailTo; 
    $sendArray['subject'] = $mailSubject; 
    $sendArray['text'] = $mailText; 
    if ($mailHTML != null) { 
    $sendArray['html'] = $mailHTML; 
    } 
    if ($mailCC != null) { 
    $sendArray['cc'] = $mailCC; 
    } 
    if ($mailBCC != null) { 
    $sendArray['bcc'] = $mailBCC; 
    } 
    if ($mailAttachmentsArray != null) { 
    $sendArray['attachment'] = $mailAttachmentsArray; 
    } 
    $mg = new Mailgun($GLOBALS['MAILGUN_API_KEY']); 
    $mg->sendMessage($GLOBALS['MAILGUN_MAIL_DOMAIN'], $sendArray); 
} 

Enfin, l'envoi d'e-mail avec quelque chose comme:

mailgunSend($GLOBALS['VERIFICATION_EMAIL_FROM'], $_SESSION["userEmail"], 
$GLOBALS['VERIFICATION_EMAIL_SUBJECT'], $mailBodyText, $mailBodyHTML); 

Vous devez bien sûr composer vos données de formulaire dans le corps du message. J'espère que cela pourra aider.