2016-11-16 1 views
-1

Ich habe eine PHP-Massen-Mail-Funktion erstellen, aber es funktioniert nicht. Wenn ich den Text abschicke, wird eine Erfolgsmeldung angezeigt, aber wenn ich meine E-Mail-Postfächer und Spam-Ordner überprüfe, gibt es keine E-Mails. Kannst du mir den richtigen Weg sagen und was ist das Problem in meinem Code?Senden Sie keine Massenmail von PHP SMTP

Aus Konfigurationsdatei:

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"); 

Dies ist die Masse mail:

<?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 } ?> 

Antwort

0

Nach können die möglichen Probleme sein:

1. Mail Port: Mail-Port unterscheidet sich bei Mail-Anbietern. Für Google Mail versuchen Sie den Port 587

2. SMTP-Verschlüsselung: SMTP Secure variiert mit Mail-Anbietern. Für Google Mail versuchen Sie $ mail-> SMTPSecure = 'tls'. Einige SMTP-Server blockieren Verbindungen. Einige SMTP-Server unterstützen keine SSL- (oder TLS-) Verbindungen.

3. Weniger sichere App: Zugriff von weniger sicheren Anwendungen zulassen. (Zum Beispiel Gmail, Yahoo)