2017-11-16 13 views
-1

PHPに組み込まれたメール機能を使用して確認メールを送信しています。しかし、私の大学に割り当てられているサーバー上では、ローカルでしか動作しません。サイトはhttp://adonnelly759.students.cs.qub.ac.uk/thatch/です。PHPメール機能が他のメールに送信しない

お問い合わせフォームが送信されると、管理者のメールアドレスと提供されたクライアントのメールアドレスへのメールの確認の下、自分宛てにメールが送信されます。次のように私は、コードを設定している

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
$headers .= 'From: <Thatch>' . "\r\n"; 

// Sending the email to the users provided e-mail 
mail($email, $userSub, $userMsg, $headers); 

更新:mail() functionを捨てそしてではSwiftMailerのために行くことにしました。シンプルで使いやすい。すべての助けに感謝します。

答えて

1

PHPのmail()関数は、最善の方法ではありません。 mail-tester.comに行き、表示されているランダムな電子メールアドレスをコピーし、コードを使用してこのアドレスに電子メールを送信し、mail-tester.comに戻り、結果を確認します。私はあなたが非常に遅いスコアを持っていると思うので、あなたの電子メールが配信されていない理由です。

代わりにPHPMailerを使用できます。以下にいくつかのサンプルコードを示します。 https://github.com/PHPMailer/PHPMailer

これはうまくいくはずですが、ユーザー名とパスワードと共にSMTPAuthを有効にすると、意図した宛先に到着する可能性が非常に高い堅牢な方法でメールを送信することができます。

<?php 

use PHPMailer\PHPMailer\PHPMailer; 
use PHPMailer\PHPMailer\Exception; 

require 'vendor/autoload.php'; 

$body = '<p>this is a <strong>test</strong> email</p><p><img src="cid:qrcode" /></p>'; 

$mail = new PHPMailer(true); 

try { 
    $mail->isSMTP(); 
    $mail->Host = 'localhost'; 
    $mail->SMTPAuth = false; 

    $mail->setFrom('[email protected]', 'Chris'); 
    $mail->addAddress('[email protected]'); 

    $mail->isHTML(true); 
    $mail->Subject = 'This is a PHPMailer Test'; 
    $mail->Body = $body; 
    $mail->AltBody = $body; 

    $mail->send(); 

    echo 'Message has been sent'; 
} catch (Exception $e) { 
    echo 'Message could not be sent.'; 
    echo 'Mailer Error: ' . $mail->ErrorInfo; 
} 
+0

ありがとうございます。私は別のルートに行き、SwiftMailerを使うことにしました –

関連する問題