2017-10-13 28 views
-1

私のウェブメールはワンから来てサーバ側の電子メールスクリプトをサポートしているので、PHPシステムを電子メールで送信する簡単なフォームがあります。しかし、問題はHotmailがそうでないため、Oneがサポートしているものをサポートしていない電子メールに対しては私のフォームは機能しません。私は完璧な解決策を見つけるためにインターネットを見てきましたが、PHPは私が好きなものではありませんので、それは私のお茶ではありません。私のPHPメールフォルダが現在どのように見えているのか見てみましょう。ホットメール用に動作しない電子メールフォーム

<?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'); 

ご覧のとおり、これは非常に基本的なものです。だからこそ、私は人々が私よりもずっと多くのことを知っている場所に来たのです。

時間をいただきありがとうございます。

+0

"から"のメールアドレスを偽装することで、基本的にすべてのメールプロバイダのスパマーと違いはありません。これは、すべての大手企業が「noreply @ ...」のような標準の送信専用アカウントから電子メールを送信する理由です。メジャープロバイダーにメールを受けさせたい場合は、送信する実際のメールアカウントを設定する必要があります。 – neuromatter

+0

私は通常、Amazon SESやSendgridのようなものをこの種のものに使用しています。 –

答えて

0

Mailgunを他のソリューションよりも推薦するつもりはありません。これは私がコードを説明するのに便利なものです。メールを送信することは、世界が悩まされているスパムとマルウェアの問題のすべてを伴う些細なことではありません。メールは、メジャープロバイダーが最初のヒントで何かをスケッチしてブロックされます。ウェブサイトからメールを送信する必要がある場合は、メールを送信する特定のアカウントを作成する必要があります。 "バルクメール送信"のWeb検索を実行して、さらに多くのオプションを表示します。多くは軽い使用のために無料です...いくつかはかなり重要な使用のために自由です。

Mailgunを使用している場合は、WebサーバーのフォルダにPHPをダウンロードします。

mailgunSend($GLOBALS['VERIFICATION_EMAIL_FROM'], $_SESSION["userEmail"], 
$GLOBALS['VERIFICATION_EMAIL_SUBJECT'], $mailBodyText, $mailBodyHTML); 
:ようなもので、電子メールを送信し、最後に

<?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); 
} 

:メールを送信する

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

と機能:どこかの設定ファイルでは

:そして、このような何かを持っています

もちろん、フォームデータをメール本文に組み込む必要があります。希望が役立ちます。

関連する問題