2017-10-13 82 views
-1

我有一個簡單的表格來發送PHP系統,這對我來說工作得很好,因爲我的webmail來自One並且它們支持服務器端電子郵件腳本。但問題在於Hotmail不支持,所以我的表單不適用於不支持One支持的電子郵件。我已經通過互聯網找到了一個完美的解決方案,但是PHP並不是我喜歡用的東西,所以玩弄它並不是我的一杯茶。 Incase你想知道我的PHP郵件文件夾目前的樣子,看看:表格到電子郵件不能用於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'); 

正如你所看到的,這是非常基本的東西。這就是爲什麼我來到了人們比我更瞭解這個地方的原因。

感謝您抽出時間。

+0

通過欺騙「發件人」電子郵件地址,您基本上與所有電子郵件提供商的垃圾郵件發送者不同。這就是爲什麼所有主要公司都會從標準發送賬戶(比如「noreply @ ...」)發送電子郵件。如果您希望主要提供商接受您的電子郵件,您需要設置一個真實的電子郵件帳戶發送。 – neuromatter

+0

我通常使用類似亞馬遜SES或Sendgrid這種東西,它工作得很好。 –

回答

0

並不打算爲其他解決方案支持Mailgun。這正是我用代碼方便說明的。發送郵件並不是微不足道的事情,世界上所有的垃圾郵件和惡意軟件問題都會受到困擾。主要提供者在任何粗略的第一提示時都會阻止郵件。如果您需要從網站發送郵件,則應在某處創建一個帳戶以專門發送郵件。通過網頁搜索「Bulk Mail Send」查看更多選項。許多都可以免費使用,有些甚至可以免費使用。

如果使用Mailgun,則可以將他們的PHP下載到Web服務器中的文件夾中。然後有這樣的事情:

在配置文件中的某個地方:

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

和一個函數來發送郵件:

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

最後,發送電子郵件的東西,如:

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

你當然需要將你的表單數據組成你的郵件正文。希望有所幫助。

相關問題