/*******************************************************************************
        smtp.c
        Z-World, 2000

        A small program that uses the SMTP library
        to send an e-mail.
*******************************************************************************/

/***********************************
 * Configuration                   *
 * -------------                   *
 * All fields in this section must *
 * be altered to match your local  *
 * network settings.               *
 ***********************************/

/*
 *   These macros need to be changed to the appropriate values or
 *   the smtp_sendmail(...) call in main() needs to be changed to
 *   reference your values.
 */

#define FROM     "myaddress@mydomain.com"
#define TO       "myaddress@mydomain.com"
#define SUBJECT  "test mail"

/*
 *   You must change the following values to whatever
 *   your local IP address and netmask are. Contact your
 *   network administrator for these numbers.
 */
 
#define MY_IP_ADDRESS "10.10.6.101"
#define MY_NETMASK    "255.255.255.0"
#define MY_GATEWAY    "10.10.6.19"
#define MY_NAMESERVER "10.10.6.1"

/*
 *   The SMTP_SERVER macro tells DCRTCP where your mail server is.  This
 *   mail server MUST be configured to relay mail for your controller.
 *
 *   This value can be the name or the IP address.
 */

#define SMTP_SERVER "mymailserver.mydomain.com"

/*
 *   The SMTP_DOMAIN should be the name of your controller.  i.e.
 *   "somecontroller.somewhere.com"  Many SMTP servers ignore this
 *   value, but some SMTP servers use this field.  If you have
 *   problems, turn on the SMTP_DEBUG macro and see were it is
 *   bombing out.  If it is in the HELO command consult the
 *   person in charge of the mail server for the appropriate value
 *   for SMTP_DOMAIN. If you do not define this macro it defaults
 *   to the value in MY_IP_ADDRESS.
 *
 */
 
//#define SMTP_DOMAIN "mycontroller.mydomain.com"

/*
 *   The SMTP_DEBUG macro logs the communications between the mail
 *   server and your controller.  Uncomment this define to begin
 *   logging
 */

//#define SMTP_DEBUG
 
/********************************
 * End of configuration section *
 ********************************/


#memmap xmem
#use dcrtcp.lib
#use smtp.lib

/*
 *		ximport takes a file from disk and associates it with a
 *		c symbol.  The c symbol evaluates to the physical address
 *    of the data. The first four bytes of the data are the
 *    length of the file followed directly by the length of the
 *    file.
 *
 *    To use smtp_sendmailxmem with RAM, xalloc a region, place
 *    the length of the data in the first four bytes and the
 *    data directly following it.  NOTE:  the data must not
 *    contain the string "\r\n.\r\n"
 *
 */

#ximport "samples/tcpip/smtp/smtp.txt" test_txt

main()
{
	long length;
	
	sock_init();

	xmem2root(&length,test_txt,sizeof(length));
	smtp_sendmailxmem(TO, FROM, SUBJECT, test_txt+4, length);
		
	while(smtp_mailtick()==SMTP_PENDING)
		continue;

	if(smtp_status()==SMTP_SUCCESS)
		printf("Message sent\n");
	else
		printf("Error sending message\n");
}