2016-08-01 50 views
-5

我的问题是我有一个代码,以向用户发送电子邮件时,点击一些按钮,它的工作对我来说在本地主机,但不工作的时候我把它的Heroku服务器PHP代码:邮件无法发送

<?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 = '[email protected]'; 
    $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('[email protected]', '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 

回答

0

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

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

+0

感谢您的回答,但我有两个应用程序在服务器的Heroku第一个应用程序工作在PHP邮件和发送电子邮件给用户,但在第一个应用程序和第二应用..所以第二应用无法发送,它几乎相同的代码? ? –

+0

当我在localhost测试它的工作! –