Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/06/2012, 14:13
Avatar de manyblue
manyblue
 
Fecha de Ingreso: marzo-2008
Mensajes: 329
Antigüedad: 16 años, 8 meses
Puntos: 10
Instalación Sendmail en Ubuntu para enviar correos y formularios

La verdad es que llevo tiempo intentando poder enviar correos y formularios desde mi web, por el momento no lo he conseguido pero creo voy por buen camino si vosotros m hechais una mano.

OS: Ubuntu 11.04
Instalados. LAMP Server mínimo.

Lo primero es instalar "sendmail", "sendmail-cf", y "mailutils"

Abro terminal:

# apt-get install sendmail sendmail-cf mailutils

Abrimos en el router el puerto 25 y lo redirigimos a la ip interna del server.

Comprobamos que el puerto 25 esta en escucha por sendmail:

# telnet 127.0.0.1 25

nos debe responder:

220 nuestrohost ESMTP sendmail 8.14.4/8.14.4/Debian-2ubuntul lafecha .........
al final esto loogging acces from: locahost(OK)

Otra forma es:

# nmap 127.0.0.1

Debe aparecer el 25 TCP Open smtp

Todo Ok por el momento.

Edito el archivo /etc/php5/apache2/php.ini
Debiendo quedar asi:

Código:
[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 = [email protected]
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
sendmail_path =/usr/sbin/sendmail -i -t
; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
; mail.force_extra_parameters =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = On
; The path to a log file that will log all mail() calls. Log entries include
; the full path of the script, line number, To address and headers.
; mail.log =
Creo que debe quedar asi, si me equivoco decidlo porfavor.
Guardamos los cambios y reiniciamos apache

# /etc/init.d/apache2 restart

Ahora viene un poco de configuración de "sendmail"

Nos camos a

# cd /etc/mail/

aqui editamos el archico sendmail.mc cualquier editor

# nano sendmail.mc

Código:
divert(-1)dnl
#-----------------------------------------------------------------------------
# $Sendmail: debproto.mc,v 8.14.4 2011-01-10 21:47:09 cowboy Exp $
#
# Copyright (c) 1998-2010 Richard Nelson.  All Rights Reserved.
#
# cf/debian/sendmail.mc.  Generated from sendmail.mc.in by configure.
#
# sendmail.mc prototype config file for building Sendmail 8.14.4
#
# Note: the .in file supports 8.7.6 - 9.0.0, but the generated
# file is customized to the version noted above.
#
# This file is used to configure Sendmail for use with Debian systems.
#
# If you modify this file, you will have to regenerate /etc/mail/sendmail.cf
# by running this file through the m4 preprocessor via one of the following:
# * make   (or make -C /etc/mail)
# * sendmailconfig 
# * m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# The first two options are preferred as they will also update other files
# that depend upon the contents of this file.
#
# The best documentation for this .mc file is:
# /usr/share/doc/sendmail-doc/cf.README.gz
#
#-----------------------------------------------------------------------------
divert(0)dnl
#
#   Copyright (c) 1998-2005 Richard Nelson.  All Rights Reserved.
#
#  This file is used to configure Sendmail for use with Debian systems.
#
define(`_USE_ETC_MAIL_')dnl
include(`/usr/share/sendmail/cf/m4/cf.m4')dnl
VERSIONID(`$Id: sendmail.mc, v 8.14.4-2ubuntu1 2011-01-10 21:47:09 cowboy Exp $')
OSTYPE(`debian')dnl
DOMAIN(`debian-mta')dnl
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
undefine(`confHOST_STATUS_DIRECTORY')dnl        #DAEMON_HOSTSTATS=
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
dnl #
dnl # General defines
dnl #
dnl # SAFE_FILE_ENV: [undefined] If set, sendmail will do a chroot()
dnl # into this directory before writing files.
dnl # If *all* your user accounts are under /home then use that
dnl # instead - it will prevent any writes outside of /home !
dnl #   define(`confSAFE_FILE_ENV',             `')dnl
dnl #
dnl # Daemon options - restrict to servicing LOCALHOST ONLY !!!
dnl # Remove `, Addr=' clauses to receive from any interface
dnl # If you want to support IPv6, switch the commented/uncommentd lines
dnl #
FEATURE(`no_default_msa')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
dnl DAEMON_OPTIONS(`Family=inet6, Name=MSP-v6, Port=submission, M=Ea, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MSP-v4, Port=submission, M=Ea, Addr=127.0.0.1')dnl
dnl #
dnl # Be somewhat anal in what we allow
define(`confPRIVACY_FLAGS',dnl
`needmailhelo,needexpnhelo,needvrfyhelo,restrictqrun,restrictexpand,nobodyreturn,authwarnings')dnl
dnl #
dnl # Define connection throttling and window length
define(`confCONNECTION_RATE_THROTTLE', `15')dnl
define(`confCONNECTION_RATE_WINDOW_SIZE',`10m')dnl
dnl #
dnl # Features
dnl #
dnl # use /etc/mail/local-host-names
FEATURE(`use_cw_file')dnl
dnl #
dnl # The access db is the basis for most of sendmail's checking
FEATURE(`access_db', , `skip')dnl
dnl #
dnl # The greet_pause feature stops some automail bots - but check the
dnl # provided access db for details on excluding localhosts...
FEATURE(`greet_pause', `1000')dnl 1 seconds
dnl #
dnl # Delay_checks allows sender<->recipient checking
FEATURE(`delay_checks', `friend', `n')dnl
dnl #
dnl # If we get too many bad recipients, slow things down...
define(`confBAD_RCPT_THROTTLE',`3')dnl
dnl #
dnl # Stop connections that overflow our concurrent and time connection rates
FEATURE(`conncontrol', `nodelay', `terminate')dnl
FEATURE(`ratecontrol', `nodelay', `terminate')dnl
dnl #
dnl # If you're on a dialup link, you should enable this - so sendmail
dnl # will not bring up the link (it will queue mail for later)
dnl define(`confCON_EXPENSIVE',`True')dnl
dnl #
dnl # Dialup/LAN connection overrides
dnl #
include(`/etc/mail/m4/dialup.m4')dnl
include(`/etc/mail/m4/provider.m4')dnl
dnl #
dnl # Default Mailer setup
MAILER_DEFINITIONS
define(`SMART_HOST',`relay.skynet.be')dnl
MAILER(`local')dnl
MAILER(`smtp')dnl
Las lineas señaladas en rojo deben quedar tal y como estan, igual que despues de la instalacion de send mail, aqui para comentar una linea se le añada al principio dnl.

Justo despues de la linea azul viene el meollo de la cuestion que todavia no entiendo muy bien.
Hay que añadir una linea que sea asi:

Código:
define(`SMART_HOST',`relay.skynet.be')dnl
"relay.skynet.be" es el meollo de la cuestion yo puse este pues es el que venia el manual pero creo se puede poner otro no se yo lo deje asi.
PORFA decidme algo sobre este tema, aqui se puede pone el de gmail ??? agradeceria respuesta sobre este tema es impor tante para mi.

Bueno seguimos, estamos aditando el "sendmail.mc", pues guardamos los cambios y cerramos el editor, como hemos variado el sendmail.mc ahora hay que generar el "nuevo sendmail.cf" por lo que en el terminal tecleamos lo siguiente:

# bash -c "cd /etc/mail/ && m4 sendmail.mc > sendmail.cf"

Reiniciamos sendmail

# /etc/init.d/sendmail rest



Decidme algo aun no lo he probado en la web no podre hacerlo hasta el domingo o lunes asi que espero comentarios sobre este tema que creo es interesante.

Tengo en este server instalado "wbmin" y veo que en el desplegable de Server esta sendmail asi que se puede configurar tambien por ahi, que pensais ??

Se me olvidabe en "/etc/hostname" y en "/etc/hosts" estaran los mismo que en "/etc/mail/local-host-names", se pueden añadir mas.


Un saludo a todos y gracias de antemano: Manyblue

Última edición por manyblue; 15/06/2012 a las 14:21