First of all, I apologise, because this seems like a well-discussed topic, but I am posting here anyway, because I couldn't get it working for quite a while now, even though there are lots of tutorials:

I would like to send email from my local machine to my server or gmail's smtp server, because my ISP does not allow my machine to send email (Argh!). I don't mind if there is a gmail header or similar because I just need it to test my local PHP applications like Drupal and CiviCRM.

I followed this first:
but it did not work for me.

My /etc/mail/sendmail.mc file:

# $Sendmail: debproto.mc,v 8.14.4 2011-08-14 09:21:51 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
#   Copyright (c) 1998-2005 Richard Nelson.  All Rights Reserved.
#  This file is used to configure Sendmail for use with Debian systems.
VERSIONID(`$Id: sendmail.mc, v 8.14.4-2ubuntu2 2011-08-14 09:21:51 cowboy Exp $')
dnl # Items controlled by /etc/mail/sendmail.conf - DO NOT TOUCH HERE
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 #
dnl DAEMON_OPTIONS(`Family=inet6, Name=MTA-v6, Port=smtp, Addr=::1')dnl
DAEMON_OPTIONS(`Family=inet,  Name=MTA-v4, Port=smtp, Addr=')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=')dnl
dnl #
dnl # Be somewhat anal in what we allow
dnl #
dnl # Define connection throttling and window length
define(`confCONNECTION_RATE_THROTTLE', `15')dnl
dnl #
dnl # Features
dnl #
dnl # use /etc/mail/local-host-names
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...
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 #
dnl #

define(`RELAY_MAILER_ARGS', `TCP $h 587')
define(`ESMTP_MAILER_ARGS', `TCP $h 587')
FEATURE(`authinfo',`hash /etc/mail/auth/client-info')dnl
define(`CERT_DIR', `MAIL_SETTINGS_DIR/certs')
define(`confCACERT_PATH', `CERT_DIR')
define(`confCACERT', `CERT_DIR/CAcert.pem')
define(`confSERVER_CERT', `CERT_DIR/mycert.pem')
define(`confSERVER_KEY', `CERT_DIR/mykey.pem')
define(`confCLIENT_CERT', `CERT_DIR/mycert.pem')
define(`confCLIENT_KEY', `CERT_DIR/mykey.pem')

dnl # Masquerading options
dnl # FEATURE(`allmasquerade')dnl

dnl # Default Mailer setup
dnl define(`SMART_HOST', `ihostnz.com')dnl
dnl MAILER(`local')dnl
dnl MAILER(`smtp')dnl
My hostname is galaxy.

My /var/log/mail.log file:
Mar 18 00:59:14 galaxy sendmail[6762]: unable to qualify my own domain name (galaxy) -- using short name
Mar 18 00:59:15 galaxy sendmail[6762]: q2HBxEul006762: from=geekdenz, size=86, class=0, nrcpts=1, msgid=<201203171159.q2HBxEul006762@galaxy>, relay=geekdenz@localhost
Mar 18 00:59:15 galaxy sm-mta[7315]: STARTTLS=server, relay=localhost [], version=TLSv1/SSLv3, verify=NOT, cipher=DHE-DSS-AES256-SHA, bits=256/256
Mar 18 00:59:15 galaxy sendmail[6762]: STARTTLS=client, relay=[], version=TLSv1/SSLv3, verify=FAIL, cipher=DHE-DSS-AES256-SHA, bits=256/256
Mar 18 00:59:15 galaxy sm-mta[7315]: q2HBxF4d007315: SYSERR(root): buildaddr: unknown mailer unknown
Mar 18 00:59:15 galaxy sendmail[6762]: q2HBxEul006762: to=<th.heuer@gmail.com>, ctladdr=geekdenz (1000/1000), delay=00:00:01, xdelay=00:00:00, mailer=relay, pri=30086, relay=[] [], dsn=5.3.5, stat=Service unavailable
Mar 18 00:59:15 galaxy sm-mta[7315]: q2HBxF4d007315: from=<geekdenz@galaxy>, size=86, class=0, nrcpts=0, proto=ESMTP, daemon=MTA-v4, relay=localhost []
Mar 18 01:00:01 galaxy sm-msp-queue[7766]: My unqualified host name (galaxy) unknown; sleeping for retry
Mar 18 01:01:01 galaxy sm-msp-queue[7766]: unable to qualify my own domain name (galaxy) -- using short name
There is always a long delay when I send an email like:
echo test email | mail -s mysubject my@gmail.com
Help! I really need it because I've been stuck on this for many hours now and I need to get the project off the ground.

Using Ubuntu 11.10.

Many thanks!