Вчерашний день формулировал вопрос, в котором он посылал почту с функцией PHPMailer, но это посылал в мишени. Сегодняшний день старался посылать это и прибудь в мой почтовый ящик, но проблема состоит в том, что он прибывает как будто я сам посылал это себе, не принимает во внимание данные о FROM. Помоги пожалуйста коду это следующий:
<?php
require_once('class.phpmailer.php');
require_once('class.smtp.php');
//require_once('PHPMailerAutoload.php');
require('vistas/mail.view.php');
define("destino", "gspindolab@gmail.com");
define("farmacia", "Guillermo");
if ($_SERVER['REQUEST_METHOD'] =='POST') {
$nombre=filter_var($_POST['nombre'], FILTER_SANITIZE_STRING);
$de=filter_var($_POST['de'], FILTER_SANITIZE_EMAIL);
$telefono=filter_var($_POST['telefono'], FILTER_SANITIZE_STRING);
$asunto=filter_var($_POST['asunto'], FILTER_SANITIZE_STRING);
$mensaje='
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>Cuerpo del mensaje</h1>
</body>
</html>
';
$mensaje.=filter_var($_POST['mensaje'], FILTER_SANITIZE_STRING);
$correo = new PHPMailer(); //Creamos una instancia en lugar usar mail()
$correo->IsSMTP();
$correo->SMTPOptions = array('ssl' => array('verify_peer' => false,'verify_peer_name' => false,'allow_self_signed' => true));
// optional
// used only when SMTP requires authentication
$correo->SMTPAuth = true;
$correo->SMTPSecure = 'tls';
$correo->Host = "smtp.gmail.com";
$correo->Port = 587;
$correo->Username = 'correo@gmail.com';
$correo->Password = 'password';
//Usamos el SetFrom para decirle al script quien envia el correo
$correo->SetFrom($de, $nombre);
//Usamos el AddReplyTo para decirle al script a quien tiene que responder el correo
$correo->AddReplyTo($de, $nombre);
//Usamos el AddAddress para agregar un destinatario
$correo->AddAddress(destino, farmacia);
//Ponemos el asunto del mensaje
$correo->Subject = $asunto;
/*
* Si deseamos enviar un correo con formato HTML utilizaremos MsgHTML:
* $correo->MsgHTML("<strong>Mi Mensaje en HTML</strong>");
* Si deseamos enviarlo en texto plano, haremos lo siguiente:
* $correo->IsHTML(false);
* $correo->Body = "Mi mensaje en Texto Plano";
*/
$correo->MsgHTML($mensaje);
//Si deseamos agregar un archivo adjunto utilizamos AddAttachment
//$correo->AddAttachment("images/phpmailer.gif");
$correo->CharSet = "UTF8";
//$correo->Encoding = "quotedprintable";
//Enviamos el correo
if(!$correo->Send()) {
echo "Hubo un error: " . $correo->ErrorInfo;
} else {
echo "Mensaje enviado con exito.";
}
}
?>
В конце концов я этого добился и добавила следующая lГ-nea:
$correo->SMTPOptions = array('ssl' => array('verify_peer' => false,'verify_peer_name' => false,'allow_self_signed' => true));
и добавляя tambiГ©n класс:
require_once('class.smtp.php');
Используй эту функцию:
function enviar_correo($destinatarios, $mail_asunto, $mail_contendio, $from, $from_name, $archivos_adjuntos_ruta,$archivos_adjuntos_temp){
$mail= new PHPMailer(); // defaults to using php "mail()"
$mail->CharSet = 'UTF-8';
$body= $mail_contendio;
$mail->IsSMTP(); // telling the protocol to use SMTP
$mail->Host = "smtp.farmaciassanasana.com.mx"; // SMTP server
$mail->From = $from;
$mail->FromName = $from_name;
$mail->Subject = $mail_asunto;
$mail->MsgHTML($body);
$destinatarios=explode(",", $destinatarios);
if(!empty($destinatarios)){
foreach($destinatarios as $un_destinatario){
$mail->AddAddress($un_destinatario); //destinatarios
}
}else{
return false;
}
if(!empty($archivos_adjuntos_ruta)){
foreach($archivos_adjuntos_ruta as $archivo){
$mail->AddAttachment($archivo); // attachment
}
}
if(!empty($archivos_adjuntos_temp)){
foreach($archivos_adjuntos_temp as $nombrearchivo=>$contenidoArchivo){
$mail->AddStringAttachment($contenidoArchivo,$nombrearch ivo,'base64');
}
}
$mail->Timeout = 20;
if($mail->Send()) {
return array(true);
}else {
return array(false,"Mailer Error: ".$mail->ErrorInfo);
}
}
и здесь какие-то примеры, чтобы призывать ее:
$archivos_adjuntos_ruta=array($path1,path2);
$archivos_adjuntos_temp=array(utf8_decode($strfile PDF)=>$strContenidoPdf,utf8_decode($strNomArch)=>$ strContenidoXml);
enviar_correo($Email_destinatarios_string_separado_por_comas,$email_asunto, $mail_contendio_en_html,$correo_remitente,$nombre_remitente,array(),archivos_adjuntos_temp);//los archivos estan en variables temporales
enviar_correo($Email_destinatarios_string_separado_por_comas,$email_asunto, $mail_contendio_en_html,$correo_remitente,$nombre_remitente,$archivos_adjuntos_ruta,array()) ;//los archivos estan en rutas en disco
enviar_correo($Email_destinatarios_string_separado_por_comas,$email_asunto, $mail_contendio_en_html,$correo_remitente,$nombre_remitente,$archivos_adjuntos_ruta,archivos _adjuntos_temp);//ambas opciones al mismo tiempo
Если ты так продолжаешь иметь проблемы, самое вероятное состоит в том, чтобы это была какая-то плохая конфигурация на твоем сервере SMTP, или твой html вооруженное зло. И другая вещь, функция не использует login, но если ты это используешь, ты будешь должен добавлять эти две линии:
$mail->Username = "soporte@farmaciassanasana.com.mx";
$mail->Password = "mipassword"