簡體   English   中英

使用php發送電子郵件給用戶注冊

[英]send email to user register using php

我正在使用MySQL建立注冊表格來存儲數據並完美地工作。 用戶注冊時,系統會發送一封驗證電子郵件以激活用戶帳戶。 問題不在於發送給用戶的驗證郵件,而是用戶數據和激活碼可以進入mysql。

這是insert.php的代碼

<?php
    //panggil file config.php untuk menghubung ke server
    include('config.php');

    //tangkap data dari form
    $nama = $_POST['nama'];
    $username = mysql_real_escape_string($_POST['username']);
    $email = mysql_real_escape_string($_POST['email']);
    $alamat = $_POST['alamat'];
    $telp = $_POST['telp'];
    $password = mysql_real_escape_string($_POST['password']);

    // regular expression for email check
    $regex = '/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$/';
    if(preg_match($regex, $email))
    { 
        $password=md5($password); // encrypted password
        $activation=md5($email.time()); // encrypted email+timestamp
        $count=mysql_query("SELECT id_user FROM user WHERE email='$email'");
        // email check
        if(mysql_num_rows($count) < 1)
        {
            $query = mysql_query("insert into user (nama,email,telp,password,alamat,username,activation) VALUES('$nama', '$email', '$telp', '$password', '$alamat', '$username', '$activation')") or die(mysql_error());
            if ($query) 
            {
                header('location:index.php');
            }
            // sending email
            include ('sendEmail.php');

            $to=$email;
            $subject="Email verification";
            $body='Hi, <br/> <br/> Silakan verifikasi dengan klik link di bawah ini. <br/> <br/> <a href="http://localhost/LAPAN-Project/verify.php?code=' . $activation . '">Verifikasi</a>';

            sendEmail($to,$subject,$body);
            $msg= "Registration successful, please activate email."; 
        }
        else
        {
            $msg= 'The email is already taken, please try new.'; 
        }
    }
    else
    {
        $msg = 'The email you have entered is invalid, please try again.'; 
    }
    // HTML Part
//}
?>

這是代碼sendEmail.php

<?php
function sendEmail($to,$subject,$body)
{
    require ('class.phpmailer.php');
    $from       = "me@kumistebal.web.id";
    $mail       = new PHPMailer();
    $mail->IsSMTP(true);            // use SMTP
    $mail->IsHTML(true);
    $mail->SMTPAuth   = true;                  // enable SMTP authentication
    $mail->Host       = "ssl://smtp.gmail.com"; // SMTP host
    $mail->Port       =  465;                    // set the SMTP port
    $mail->Username   = "*********@gmail.com";  // SMTP  username
    $mail->Password   = "*********";  // SMTP password
    $mail->SetFrom($from, 'From Name');
    $mail->AddReplyTo($from,'From Name');
    $mail->Subject    = $subject;
    $mail->MsgHTML($body);
    $address = $to;
    $mail->AddAddress($email, $to);

    if(!$mail->Send())
        echo "Mailer Error: " . $mail->ErrorInfo;
    else
        echo "Message has been sent";
}    

?>

有誰知道怎么做?

而不是$mail->Host = "ssl://smtp.gmail.com"; // SMTP host $mail->Host = "ssl://smtp.gmail.com"; // SMTP host

只是使用

$mail->Host = "smtp.gmail.com"; // SMTP host

您需要使用$ mail-> Host =“ smtp.gmail.com”更改主機; // SMTP主機和$ mail-> Port = 25; //設置SMTP端口

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM