php代码:电子邮件不发送

时间:2016-08-01 15:16:52

标签: php email

我的问题是我有一个代码向用户发送电子邮件,当点击某个按钮时,它在localhost中为我工作,但是当我在heroku服务器中推送它时不能正常工作

<?php

if (isset($_POST['submitcmt']) && $_POST['token'] == $dcs_user_info['token']) {
    //get rows in watchlist table if contest_id (job_id)==contest_id in database $watchlist_table = mysqli_query($conn, "SELECT * FROM watchlist WHERE contest_id='$contest_id'") or die("Error: " . mysqli_error($watchlist_table));
}

if (mysqli_num_rows($watchlist_table) > 0) {

    //get rows from content table
    $contentsTable = mysqli_query($conn, "SELECT * FROM contests WHERE id='$contest_id'")
    or die("Error: " . mysqli_error($conn));

    //to can use the rows in users table 
    $row_contents = mysqli_fetch_array($contentsTable, MYSQLI_ASSOC);

    //get rows from users table
    $userTable = mysqli_query($conn, "SELECT * FROM users WHERE id!='" . $dcs_user->user['id'] . "'")
        or die("Error: " . mysqli_error($conn));

    require 'vendor/vendor/phpmailer/phpmailer/PHPMailerAutoload.php';
    require 'vendor/autoload.php';

    $mail = new PHPMailer;
    $mail->IsSMTP();
    $mail->SMTPAuth = true;
    //$mail->SMTPDebug=2;
    //$mail->Debugoutput = 'html';

    $mail->SMTPOptions =
        [
            'ssl' => [
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true,
            ],
        ];

    $mail->Host = 'smtp.gmail.com';
    $mail->Username = 'faresalkhwaja@gmail.com';
    $mail->Password = 'elkhawajah1';
    $mail->SMTPSecure = 'ssl';
    $mail->Port = 465;

    //to select all the email in database
    while ($row_user = mysqli_fetch_array($userTable, MYSQLI_ASSOC)) {

        $mail->From = 'tasqat';
        $mail->FromName = 'tasqat';
        $mail->addReplyTo('faresalkhwaja@gmail.com', 'tasqat');
        $mail->addAddress($row_user['email'], $row_user['email']);

        $mail->Subject = "new comment";

        $actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

        $mail->Body = "job title :" . $row_contents['title'] . "<br>" . "user name :" . $row_comment['display_name'] . "<br>" . "date : " . $row_comment['date'] . "<br>" . "comment : " . $row_comment['comment'] . "<br>" . "host : " . $actual_link;

        $mail->AltBody = 'this is body';
    }
}//end while loop

1 个答案:

答案 0 :(得分:0)

您的托管服务提供商可能已停用电子邮件以防止其系统被用于发送垃圾邮件。您应该与他们联系,看看他们是否会为您启用它。

如果他们不这样做,您可能需要考虑使用第三方服务。