2016-11-16 26 views
-1

PHP大量メール機能を作成していますが、機能していません。テキストを送信すると成功メッセージが表示されますが、メールの受信トレイやスパムフォルダを確認するとメールはありません。正しい方法を教えてください。私のコードでは何が問題なのですか?設定ファイルからPHP SMTPから大量メールを送信しない

define("EMAIL_USE_SMTP", true); 
define("EMAIL_SMTP_HOST", "ssl://example.com"); 
define("EMAIL_SMTP_AUTH", true); 
define("EMAIL_SMTP_USERNAME", "[email protected]"); 
define("EMAIL_SMTP_PASSWORD", "*******"); 
define("EMAIL_SMTP_PORT", 465); 
define("EMAIL_SMTP_ENCRYPTION", "ssl"); 

これは大量のメールです:

<?php if($page == "mass_mail") { ?> 

<div class="head_title">Mass-Mail</div> 

<?php 

if(isset($_POST['submit_new'])) { 

$subject = $_POST['subject']; 
$body = $_POST['body']; 

$q = mysqli_query($con,"SELECT user_email FROM users WHERE user_active = 1"); 

$x = 0; 

while($queue = mysqli_fetch_array($q)) { 

$mail = new PHPMailer(); 

if(EMAIL_USE_SMTP) { 

$mail->IsSMTP(); 

$mail->SMTPAuth = EMAIL_SMTP_AUTH; 
if(defined(EMAIL_SMTP_ENCRYPTION)) { 
$mail->SMTPSecure = EMAIL_SMTP_ENCRYPTION; 
} 

$mail->Host = EMAIL_SMTP_HOST; 
$mail->Username = EMAIL_SMTP_USERNAME; 
$mail->Password = EMAIL_SMTP_PASSWORD; 
$mail->Port = EMAIL_SMTP_PORT; 
} else { 
$mail->IsMail(); 
} 

$mail->Subject = $subject; 
$mail->SMTPDebug = false; 
$mail->do_debug = 0; 
$mail->MsgHTML($body); 
$address = $queue['user_email']; 
$mail->AddAddress($address); 
$mail->Send(); 

$x = $x + 1; 

} 

echo '<div class="alert alert-dismissable alert-success"> 
Email sent to ' . $x . ' users! 
</div>'; 

} 

echo '<form action="" method="post">'; 

echo '<input type="text" name="subject" placeholder="What\'s the subject?" class="form-control">'; 
echo '<br>'; 
echo '<textarea class="form-control" name="body" placeholder="Your message to the users" rows="6"></textarea>'; 
echo '<br>'; 
echo '<input type="submit" name="submit_new" value="Submit" class="btn btn-success btn-lg">'; 
echo '</form>'; 

?> 

<?php } ?> 

答えて

0

可能な問題可能なものを以下に示します

1.メールポート:メールポートメールプロバイダによって異なります。 Gmailの場合、ポートを試してください。587

2. SMTP暗号化: SMTPはメールプロバイダによって異なります。 Gmailの場合、$ mail-> SMTPSecure = 'tls'を試してください。一部のSMTPサーバーは接続をブロックします。一部のSMTPサーバーはSSL(またはTLS)接続をサポートしていません。

3.安全性の低いアプリケーション:安全性の低いアプリケーションからのアクセスを許可します。 (Gmail、Yahooなど)

関連する問題