Ik moet voor een examen een website bouwen, ik zou die graag zo volledig mogelijk hebben.
Ik vroeg me af of ik via een gmail account mijn mail functie's kan opgang krijgen? Verzenden nieuwsbrieven, ontvangen van vragen en suggesties van bezoekers.
zo ja, hoe krijg je dit dan voor elkaar?
Persoonlijk zou ik eerder PHPmailer aanraden in plaats van de standaard mail() functie.
Puur omdat deze makkelijker werkt, makkelijker te debuggen is, en makkelijker te targetten op een bepaalde SMTP-mailserver, waaronder die van Gmail.

Als je grote hoevee;heiden nieuwsbrieven wil versturen zou ik dit overigens NIET via Gmail doen, maar via Mailchimp.
@ Aar, Mijn website moet klaar zijn tegen 17 of 24 maart, naargelang in welke groep ik val, ik had gedacht om dit( snel even) in orde te krijgen met mijn gmail, en als er nog tijd rest zou ik het aanpassen met vb phpmailer.
Maar het valt tegen.
bij het versturen van de mail krijg ik deze foutmelding:
14:57, 5th March

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Users\Tony\Desktop\USBWebserver v8.5\8.5\root\Eigen website\publiek\Contact\mailVraag.php on line 9

Er ging iets mis met het versturen van uw vraag.

ik heb in het php.ini file dit aangepast:
[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 26
auth_username = [email protected]
auth_password = **********

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = [email protected]

en mijn php bestand ziet er als volgt uit:
<?php
echo '<br />';
echo date('H:i, jS F'),'<br/>';
$hdrs = "From: ". $_POST['email'] ."\n";
$to = "[email protected]\n";
$subj = $_POST['onderwerp'];
$mailtext = "Datum: ". date('Y-m-d', time()). "\nVraag:\n"
. $_POST['vraagtekst']. "Naam: ". $_POST['afzender'] ;
if (mail($to, $subj, $mailtext, $hdrs))
echo "<br/>Je vraag is verstuurd.";
else
echo "<br/>Er ging iets mis met het versturen van uw vraag."
?>

merci om eens te willen kijken.
Je moet dan geen localhost als SMTP-server gebruiken, maar de SMTP van gmail.

Mogelijk is dat smtp.gmail.com.
Heb dit aangepast, en krijg volgende fout:
16:03, 5th March

Warning: mail() [function.mail]: Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Users\Tony\Desktop\USBWebserver v8.5\8.5\root\Eigen website\publiek\Contact\mailVraag.php on line 9

Er ging iets mis met het versturen van uw vraag.

in het ini bestand heb ik de poort nochtans aangepast naar 26 had ik ergens gelezen dat hij moeilijk deed met poort25, in de fout melding klapt hij nog steeds van poort 25 en localhost.
Aar dat klopt en als het goed is, is de smtp_port niet 26 maar 25
Tevens moet je alle configuratie in de aanroep naar php mailer doen en niet in php.ini of andere ini files.
Onderstaand een voorbeeldje zo van het net geplukt. Je kan dit gebruiken en je eigen smtp van google invoeren:

<?php
require("class.PHPMailer.php");

$mail = new PHPMailer();

$mail->IsSMTP();                                              // set mailer to use SMTP
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->SMTPAuth   = true;                    
$mail->Host = "smtp1.example.com;smtp2.example.com";  // specify main and backup server
$mail->SMTPAuth = true;     // turn on SMTP authentication
$mail->Username = "jswan";  // SMTP username
$mail->Password = "secret"; // SMTP password

$mail->From = "[email protected]";
$mail->FromName = "Mailer";
$mail->AddAddress("[email protected]", "Josh Adams");
$mail->AddAddress("[email protected]");                  // name is optional
$mail->AddReplyTo("[email protected]", "Information");

$mail->WordWrap = 50;                                 // set word wrap to 50 characters
$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. <p>";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}

echo "Message has been sent";
?>

Als je php.ini aanpast worden de wijzigingen pas meegenomen als je de webserver een restart geeft.
Of je gebruikt de SMTP-server van je Internet Service Provider (ISP).

Je zou dan wat classes van libraries links en rechts bij elkaar kunnen sprokkelen om mail te versturen via je ISP, bijvoorbeeld die van het Zend Framework.

Of (eerste Google resultaat) is misschien dit iets. Deze kan gebruik maken van GMail lijkt het.

@JohnD - waar kunnen we die PHP class vinden?
Thomas van den Heuvel op 05/03/2015 16:14:53

Of je gebruikt de SMTP-server van je Internet Service Provider (ISP).
@JohnD - waar kunnen we die PHP class vinden?
De SMTP-server van je ISP is inderdaad de beste optie, ik gebruik dat zelf ook en dan ism phpmailer classes.
phpmailer classes kan je vinden op github maar ook op vele andere sites.
Google even phpmailer. Het is een complete mailer library en je hoeft verder niks bij elkaar te sprokkelen. Alles wat je nodig hebt is class.PHPMailer.php en class.smtp.php
https://github.com/PHPMailer/PHPMailer
ik had het ini bestand aangepast en opgeslaan, maar tijdens het opslaan gewoon op save ok geklikt waardoor hij het aangepaste ini bestand opsloeg als text bestand.
heb dit opgelost, en nu krijg ik de volgende:
16:25, 5th March

Warning: mail() [function.mail]: Failed to connect to mailserver at "smtp.gmail.com" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\Users\Tony\Desktop\USBWebserver v8.5\8.5\root\Eigen website\publiek\Contact\mailVraag.php on line 9

Er ging iets mis met het versturen van uw vraag.

@john, zie ik het gode dat hier phpmailer gebruikt word( moet hiervoor niet eerst iets geïnstalleerd worden?
@thomas, ik neem dit even door

Reageren