Foros del Web » Programando para Internet » PHP »

APORTE Enviar e-mail desde un server local

Estas en el tema de APORTE Enviar e-mail desde un server local en el foro de PHP en Foros del Web. Va a ser algo corto pero que a i me parecion muy bueno, en la red hay una buena cantidad de tutos pero estos no ...
  #1 (permalink)  
Antiguo 18/07/2015, 07:02
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Información APORTE Enviar e-mail desde un server local

Va a ser algo corto pero que a i me parecion muy bueno, en la red hay una buena cantidad de tutos pero estos no estan muy actualizados, es decir no a win7 o win8 por ejemplo, el caso es que les voy a comentar como enviar emails desde el servidor local, muy util para realizar pruebas de nuestras paginas programadas antes de subirlas al server y no tener que esperar a la subida para saber si nuestro codigo fnciona.

Lo Primero es descargas este par de aplicaciones:

1.- Fake sendmail:

[URL="http://glob.com.au/sendmail/"]Descargar[/URL]

Este lo descomprimen en la carpeta bin de su server apache, en este caso en wamp (C:\wamp\bin\)

2.- Stunnel:
[URL="https://www.stunnel.org/downloads.html"]Descargar[/URL]

Este lo descargan y lo instalan, en el momento de instalar les va a salir una ventana de la consola (cmd) solo presionan enter hasta que desaparesca y listo. No lo ejecuten todavia luego de la instalacion.

acto siguiente vamos a configurar nuestro archivo php.ini de nuestro wamp server, para ello vamos hasta C:\wamp\bin\apache\apache2.2.22\bin.

estando alli vamos a habilitar las siguientes extensiones:

Cita:

extension=php_sockets.dll

extension=php_openssl.dll
en el mismo archivo pero mas abajo buscamos el apartado [mail function] el cual debe quedar asi:

Cita:
[mail function]
; For Win32 only.
; http://php.net/smtp
;SMTP = localhost
; http://php.net/smtp-port
;smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
sendmail_from = AQUI VA SU EMAIL DE GMAIL

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path = "C:\wamp\bin\sendmail\sendmail.exe -t"

ok luego nos dirigimos a la carpeta de sendmail en nuestro apache C:\wamp\bin\sendmail y alli vamos a editar el archivo sendmail.ini:

estas lineas deben quedar asi, el resto queda como estan en el archivo:

Cita:
smtp_server=localhost

; smtp port=465

smtp_port=25

; SMTPS (SSL) support
; auto = use SSL for port 465, otherwise try to use TLS
; ssl = alway use SSL
; tls = always use TLS
; none = never try to use SSL

; auto
smtp_ssl=none

error_logfile=error.log

debug_logfile=debug.log

auth_username=AQUI SU EMAIL DE GMAIL
auth_password=AQUI SU CLAVE

hostname=localhost
pasamos a la carpeta donde se instalo stunnel C:\Program Files (x86)\stunnel y copiamos el archivo stunnel.conf al escritorio para poderlo editar

Cita:
; Some options used here may be inadequate for your particular configuration
; This sample file does *not* represent stunnel.conf defaults
; Please consult the manual for detailed description of available options

; ************************************************** ************************
; * Global options *
; ************************************************** ************************

; Debugging stuff (may be useful for troubleshooting)
;debug = info
;output = stunnel.log

; Enable FIPS 140-2 mode if needed for compliance
;fips = yes

; Microsoft CryptoAPI engine allows for authentication with private keys
; stored in the Windows certificate store
; Each section using this feature also needs the "engineId = capi" option
;engine = capi

; ************************************************** ************************
; * Service defaults may also be specified in individual service sections *
; ************************************************** ************************

; Enable support for the insecure SSLv3 protocol
;options = -NO_SSLv3

; These options provide additional security at some performance degradation
;options = SINGLE_ECDH_USE
;options = SINGLE_DH_USE

; ************************************************** ************************
; * Include all configuration file fragments from the specified folder *
; ************************************************** ************************

;include = conf.d

; ************************************************** ************************
; * Service definitions (at least one service has to be defined) *
; ************************************************** ************************

; ***************************************** Example TLS client mode services

;[gmail-pop3]
;client = yes
;accept = 127.0.0.1:110
;connect = pop.gmail.com:995
;verify = 2
;CAfile = ca-certs.pem
;checkHost = pop.gmail.com

;[gmail-imap]
;client = yes
;accept = 127.0.0.1:143
;connect = imap.gmail.com:993
;verify = 2
;CAfile = ca-certs.pem
;checkHost = imap.gmail.com

[gmail-smtp]
client = yes
accept = 127.0.0.1:25
connect = smtp.gmail.com:465
verify = 2
CAfile = ca-certs.pem
checkHost = smtp.gmail.com

; Encrypted HTTP proxy authenticated with a client certificate
; located in the Windows certificate store
;[example-proxy]
;client = yes
;accept = 127.0.0.1:8080
;connect = example.com:8443
;engineId = capi

; ***************************************** Example TLS server mode services

;[pop3s]
;accept = 995
;connect = 110
;cert = stunnel.pem

;[imaps]
;accept = 993
;connect = 143
;cert = stunnel.pem

[ssmtp]
accept = 465
connect = 25
cert = stunnel.pem

; TLS front-end to a web server
;[https]
;accept = 443
;connect = 80
;cert = stunnel.pem
; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SChannel
; Microsoft implementations do not use TLS close-notify alert and thus they
; are vulnerable to truncation attacks
;TIMEOUTclose = 0

; Remote cmd.exe protected with PSK-authenticated TLS
; Create "secrets.txt" containing IDENTITY:KEY pairs
;[cmd]
;accept = 1337
;exec = c:\windows\system32\cmd.exe
;execArgs = cmd.exe
;ciphers = PSK
;PSKsecrets = secrets.txt

; vim:ft=dosini
solo deben quitar el ; a las opciones que les coloque alli.

y listo solo basta con probar con algún código de envío por ejemplo

Código PHP:
Ver original
  1. $para       =   'AQUI EL EMAIL';
  2. $asunto     =   'Aqui el asunto';
  3. $mensaje    =   'Nombre: .$nombre.<br>';
  4. $mensaje    .=  'Correo: .$correo.<br>';
  5. $mensaje    .=  '$numero: .$numero.<br>';
  6. $mensaje    .=  'Contenido: .$contenido.<br>';
  7.  
  8. $cabeceras = 'From: AQUI EL EMAIL' . "\r\n" .
  9.     'Reply-To: [email protected]' . "\r\n" .
  10.     'X-Mailer: PHP/' . phpversion();
  11. $cabeceras .= 'MIME-Version: 1.0' . "\r\n";
  12. $cabeceras .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
  13. //$cabeceras .= 'Bcc: [email protected]' . "\r\n"; //Si vas a enviar alguna copia oculta
  14. mail($para, $asunto, utf8_encode($mensaje), $cabeceras);
  15.  
  16.     if(mail){
  17.         echo "Mensaje Enviado";
  18.     } else {
  19.         echo "Mensaje no enviado";
  20.     }

NOTAS inportantes:
- Deben tener habilitado el acceso imap en su gmail, eso lo realiza en la configuracion de su bandeja.- Tambien deben verificar en esta direccion https://www.google.com/settings/security/lesssecureapps si tienen desactivado el filtro de conexiones para aplicaciones, si es asi activenlo

- Deben iniciar el stunnel en modo administrador y con compatibilidad para windows xp y el sendmail.exe tambien deben darle estas propiedades.

esto lo realizan dando clic derecho sobre el ejecutable y en la pestaña compatibilidad.

Bueno espero les sea de utilidad...
__________________
[email protected]
HITCEL
  #2 (permalink)  
Antiguo 18/07/2015, 12:16
Avatar de MaNuX0218  
Fecha de Ingreso: marzo-2014
Mensajes: 787
Antigüedad: 10 años, 1 mes
Puntos: 67
Respuesta: APORTE Enviar e-mail desde un server local

Buen aporte, aun que decirte que con PHPMailer puedes enviar correos desde localhost y subidas a tu servidor.

Un saludo.
__________________
No te preocupes si tu código no funciona bien. Si todo lo hiciera, no tendrías trabajo.
  #3 (permalink)  
Antiguo 18/07/2015, 18:19
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: APORTE Enviar e-mail desde un server local

Buen aporte, pero creo que es mejor si usas Mailtrap o FakeSMTP
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #4 (permalink)  
Antiguo 18/07/2015, 18:31
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: APORTE Enviar e-mail desde un server local

no los conocía, gracias voy a probarlos a ver que tal
__________________
[email protected]
HITCEL

Etiquetas: e-mail, html, local, server
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:13.