foutmelding PHPMailer: Message could not be sent.Mailer Error: SMTP connect() failed.
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 https://github.com/PHPMailer/PHPMailer
-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: https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
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
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?
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';
}
?>
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';
}
?>
Gewijzigd op 26/09/2016 22:13:09 door - Ariën -
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
Hiermee test je of de smtp server bereikbaar is:
Een voorbeeld:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$ 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.
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.
Gewijzigd op 26/09/2016 22:36:56 door N tigerrag
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
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
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
//$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->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
Gewijzigd op 26/09/2016 22:40:03 door Aad B
Hij laat toch letterlijk zien wat hij doet? Dit werkt op Windows, OSX en Linux.
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:
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
Ik vraag me overigens wel af of je bij een hoster /var/tmp en /tmp kan benaderen??
Toevoeging op 26/09/2016 22:55:41:
Aad B op 26/09/2016 22:51:39:
1. Je kan inderdaad niet bij de directory /tmp en /varMet phpmailer kan prima een bijlage verstuurd worden. Je hebt dat toch al in je scripts staan?
Ik vraag me overigens wel af of je bij een hoster /var/tmp en /tmp kan benaderen??
Ik vraag me overigens wel af of je bij een hoster /var/tmp en /tmp kan benaderen??
2. Gebruik gewoon de sendmail van je hoster, laat dat smtp gedoe weg.
Volgens mij is er inderdaad een blokkade.
$_FILES['bestand']['name'];
en vervolgens moet ik volgens mij het pad naar het te versturen bestand (in dit geval de upload) neerzetten op de regel waar nu staat:
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
Zit ik dan goed? of is dit te simpel bedacht? (probeer wat te stoeien met dit soort dingen)