me vi un poco obligado a postear, intento entender el phpmailer, bien, ya lei muchas guias y pude hacerlo funcionar correctamente en un servidor online.
se lo que es phpmailer y para que funciona, ya lo modifique un poco y adapte al sistema de mi pagina.
pero tengo varias dudas.. en foros de otra pagina ( nada ke ver con programacion ) me comentario que phpmailer servia para enviar emails sin problemas (tuviera cliente para email o no) con esto entendi, que phpmailer era una forma mucho mas sencilla de enviar emails sin necesidad de instalar clientes de correo o smtp. ( es lo que yo entendi )
pues bien, como ya mensione arriba, el sistema me funciona perfectamente en un servidor en linea ( obviamente tiene servidor de correo y smtp ) pero.. lo que intento es hacerlo funcionar en localhost (en mi pc) cosa que no se por que motivo no puedo hacer.
ya probe de varias formas que aparecen en guias en internet. (que la mayoria explica como enviar correo con phpmailer y smtp) yo lo que intente fue hacerlo de smtp, mail o sendmail.
Error al intentar con smtp:
(se entiende con esto que declare utilizar smtp en la configuracion del phpmailer:
Código PHP:
$mail->Mailer = "smtp";
Código PHP:
Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:25 (A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. ) in systememailclass.smtp.php on line 105
Message was not sent. Mailer error: SMTP Error: Could not connect to SMTP host.
utilizando:
Código PHP:
$mail->Mailer = "mail";
Código PHP:
Message was not sent. Mailer error: Could not instantiate mail function.
Código PHP:
$mail->Mailer = "sendmail";
pues no se aque se deba el problema, si se supone que phpmailer es para evitar el tener que usar un cliente de correo o smtp. cual podra ser mi problema? o quisas este mal en lo que yo pienso es phpmailer?
esta es la funcion que hise.
NOTA: este script funciona correctamente en servidores online, si quieren usarlo pues adelante..
Código PHP:
$mail2method = "1"; //1 = Email Regular | 2 = SMTP | 3 = OFF
$reqauthsmtp = "true"; //1 = si | 2 = no
$usersmtp = "[email protected]";
$passmtp = "password";
$hostsmtp = "smtp.punkass.com";
function SubmitMail($from,$fromname,$to,$subject,$message){
global $CPlang, $hostsmtp, $passmtp, $usersmtp, $reqauthsmtp, $mail2method;
if($mail2method!="3"){
require("system/email/class.phpmailer.php");
$mail = new PHPMailer();
$mail->PluginDir = "system/email/";
if($CPlang=="spanish"){
$mail->SetLanguage("es","system/email/language/");
}else{
$mail->SetLanguage("en","system/email/language/");
}
if($mail2method=="1"){
$mail->Mailer = "mail";
}elseif($mail2method=="2"){
$mail->Mailer = "smtp";
}
if(reqauthsmtp=="true"){
$mail->SMTPAuth = "".$reqauthsmtp."";
$mail->Host = "".$hostsmtp."";
$mail->Username = "".$usersmtp."";
$mail->Password = "".$passmtp."";
}
$mail->From = "".$from."";
$mail->FromName = "".$fromname."";
$mail->AddAddress("".$to."");
$mail->Subject = "".$subject."";
$mail->Body = "".$message."";
if(!$mail->Send()){
$mailstatus = 'Message was not sent. Mailer error: ' . $mail->ErrorInfo;
}else{
$mailstatus = "Message has been sent.";
}
return $mailstatus;
}
}
$from = "[email protected]";
$fromname = "probando con smtp";
$to = "[email protected]";
$subject = "SMTP TEST LOCAL";
$message = "test test smtl";
echo "".(SubmitMail($from,$fromname,$to,$subject,$message))."";
un Saludo !