Beste mensen,

Wellicht is dit al eens voorbij gekomen, maar kon niets vinden wat specifiek met dit probleem te maken heeft:

Ik vertel even in het kort mijn stappen zoals tot nu gevolgd:

-zipfile gedownload op
-Bestanden uit de zipfile uitgepakt in map phpmailer (op server)
-php bestand aangemaakt als: mailer.php (zie onderstaande code)
-smtp configuratie aangepast in mail.php (gebruik smtp server: smtp.kpnmail.nl (zie voorbeeldcode hieronder)
-Bestand mail.php op server gezet.

Bij het aanroepen via de browser (www.mijnwebsite.nl/mail.php) verschijnt foutmelding:

Message could not be sent.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

wat heb ik al geprobeerd:
-gebruik te maken van andere smtp server (gmail)
-verschillende poortnummers gebruikt (464 / 25)
-documentatie nagezien volgens de link uit de foutnmelding:

Ondanks dit blijft dezelfde foutmelding bestaan. Ik begrijp eruit dat het bestand mail.php geen connectie kan krijgen met de smtp server. echter kan ik niets ontdekken waaraan dit ligt. Wie kan wat advies geven?

mailer.php
<?
require 'phpmailer/PHPMailerAutoload.php';

$mail = new PHPMailer;

//$mail->SMTPDebug = 1; // Enable verbose debug output

$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.kpnmail.nl'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = '[email protected]'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to

$mail->setFrom('[email protected]', 'Ho');
$mail->addAddress('[email protected]', 'test'); // Add a recipient
$mail->addAddress('[email protected]'); // Name is optional
$mail->addReplyTo('[email protected]', 'Information');
$mail->addCC('[email protected]');
$mail->addBCC('[email protected]');

$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
?>
Ik neig naar een firewall te denken, die de uitgaande poorten blokkeert. Gebruik anders eens geen SMTP, dan mail je via de server's sendmail zelf.
Is die firewall dan door mijn hoster ingesteld en zijn er manieren die dit kunnen omzeilen?

Hoeft ook niet persee via smtp, maar dacht dat dit wat veiliger is dan sendmail? Wil met php mailer bijlages kunnen meesturen waaronder pdf bestand(en) etc.

Graag zou ik je advies hier nog over willen hebben Arien. Alvast bedankt voor je eerdere reactie
Kan je op OS niveau proberen of je de mailserver kan bereiken?
Hiermee test je of de smtp server bereikbaar is:
Een voorbeeld:

$ telnet smtp.vodafone.nl 25
Trying 212.54.42.9...
Connected to smtp.mail.gtm.iss.as9143.net.

Escape character is '^]'.
554 SMTP synchronization error
Connection closed by foreign host.

$ telnet smtp.vodafone.nl 587
Trying 212.54.42.9...
Connected to smtp.mail.gtm.iss.as9143.net.
Escape character is '^]'.
220-smtp6.tb.mail.iss.as9143.net ESMTP Mon, 26 Sep 2016 22:29:46 +0200
220-Sending spam or unsolicited commercial e-mail to this server is strictly
220-prohibited by our NO UBE / NO UCE policy. Abuse will be prosecuted and/or
220 charged per attempted recipient at international postal rates.
^C
Connection closed by foreign host.
Aard B, met deze methode ben ik niet handig...hoe kan met jou voorbeeld code zo'n test doen? Wil het graag eens uitproberen
N tigerrag op 26/09/2016 22:30:07

Is die firewall dan door mijn hoster ingesteld en zijn er manieren die dit kunnen omzeilen?

Hoeft ook niet persee via smtp, maar dacht dat dit wat veiliger is dan sendmail? Wil met php mailer bijlages kunnen meesturen waaronder pdf bestand(en) etc.

Graag zou ik je advies hier nog over willen hebben Arien. Alvast bedankt voor je eerdere reactie

Ja, je hoster kan mailpoorten naar buiten geblokkeerd hebben

//$mail->isSMTP();                                      // Set mailer to use SMTP
//$mail->Host = 'smtp.kpnmail.nl';  // Specify main and backup SMTP servers
//$mail->SMTPAuth = true;                               // Enable SMTP authentication
//$mail->Username = '[email protected]';                 // SMTP username
//$mail->Password = 'secret';                           // SMTP password
//$mail->SMTPSecure = 'tls';                            // Enable TLS encryption, `ssl` also accepted
//$mail->Port = 587;                                    // TCP port to connect to

Verwijder of comment de smtp uit je script en php mailer zal de lokale sendmail gebruiken.
Er is niet echt onderscheid in veiligheid, je hoster zorgt daar wel voor als het goed is

Hij laat toch letterlijk zien wat hij doet? Dit werkt op Windows, OSX en Linux.
Wat verteld PHPMailer je met deze optie?

<?php
$mail->SMTPDebug = 2;
?>
Ik heb de code inmiddels uitgevoerd zonder smtp gedeelte zoals Aard B zei, en nu krijg ik terug dat de mail verzonden is. Ben dus weer een stap verder...heel fijn.

heeft iemand verder nog wat tips hoe je het beste een bijlage kan meesturen? Er leiden zoveel wegen naar Rome...



N tigerrag op 26/09/2016 22:49:39

Ik heb de code inmiddels uitgevoerd zonder smtp gedeelte zoals Aard B zei, en nu krijg ik terug dat de mail verzonden is. Ben dus weer een stap verder...heel fijn.


Komt de mail ook aan?
Frank Nietbelangrijk op 26/09/2016 22:46:26

Wat verteld PHPMailer je met deze optie?

<?php
$mail->SMTPDebug = 2;
?>


dan krijg ik dit:

2016-09-26 20:50:46 Could not access file: /var/tmp/file.tar.gz 2016-09-26 20:50:46 Could not access file: /tmp/image.jpg 2016-09-26 20:50:46 SMTP ERROR: Failed to connect to server: Connection refused (111) 2016-09-26 20:50:46 SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Message could not be sent.Mailer Error: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Reageren