<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: smtp code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 17 May 2008 06:48:06 GMT</pubDate>
    <description>DZone Snippets: smtp code</description>
    <item>
      <title>Ruby SMTP Server - Save to Database</title>
      <link>http://snippets.dzone.com/posts/show/5152</link>
      <description>This was something I've searched for in the past but have yet to find. It's a super simple server and I'm sure there's a few bugs left in it, but the idea is simple and in my opinion, necessary. It's easy to send email from websites, but receiving it still seems dubious.&lt;br /&gt;&lt;br /&gt;I've simply used Peter's(http://snippets.dzone.com/user/peter) ultra simplistic SMTP server and routed the email to a database table called "Emails" via ActiveRecord. It's running GServer so it should be able to handle a decent load. Like I mentioned earlier, it's probably still got some bugs, but it's a decent start.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;require 'gserver'&lt;br /&gt;require 'rubygems'  &lt;br /&gt;require 'active_record'  &lt;br /&gt;require 'yaml'&lt;br /&gt;   &lt;br /&gt;dbconfig = YAML::load_file(File.dirname(__FILE__) + '/config/database.yml')&lt;br /&gt;ActiveRecord::Base.establish_connection(dbconfig['development']) &lt;br /&gt;&lt;br /&gt;class Email &lt; ActiveRecord::Base   &lt;br /&gt;end &lt;br /&gt;&lt;br /&gt;class SMTPServer &lt; GServer&lt;br /&gt;  def serve(io)&lt;br /&gt;    @data_mode = false&lt;br /&gt;    @email_message = ""&lt;br /&gt;    puts "Connected"&lt;br /&gt;    io.print "220 hello\r\n"&lt;br /&gt;    loop do&lt;br /&gt;      if IO.select([io], nil, nil, 0.1)&lt;br /&gt;	      data = io.readpartial(4096)&lt;br /&gt;	      puts "&gt;&gt;" + data&lt;br /&gt;	      @email_message &lt;&lt; data&lt;br /&gt;	      ok, op = process_line(data)&lt;br /&gt;	      break unless ok&lt;br /&gt;	      puts "&lt;&lt;" + op&lt;br /&gt;	      io.print op&lt;br /&gt;      end&lt;br /&gt;      break if io.closed?&lt;br /&gt;    end&lt;br /&gt;    db_insert(@email_message)&lt;br /&gt;    io.print "221 bye\r\n"&lt;br /&gt;    io.close&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def process_line(line)&lt;br /&gt;    if (@data_mode) &amp;&amp; (line.chomp =~ /^\.$/)&lt;br /&gt;      @data_mode = false&lt;br /&gt;      return true, "220 OK\r\n"&lt;br /&gt;    elsif @data_mode&lt;br /&gt;      return true, ""&lt;br /&gt;    elsif (line =~ /^(HELO|EHLO)/)&lt;br /&gt;      return true, "220 and..?\r\n"&lt;br /&gt;    elsif (line =~ /^QUIT/)&lt;br /&gt;      return false, "bye\r\n"&lt;br /&gt;    elsif (line =~ /^MAIL FROM\:/)&lt;br /&gt;      return true, "220 OK\r\n"&lt;br /&gt;    elsif (line =~ /^RCPT TO\:/)&lt;br /&gt;      return true, "220 OK\r\n"&lt;br /&gt;    elsif (line =~ /^DATA/)&lt;br /&gt;      @data_mode = true&lt;br /&gt;      return true, "354 Enter message, ending with \".\" on a line by itself\r\n"&lt;br /&gt;    else&lt;br /&gt;      return true, "500 ERROR\r\n"&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;  def db_insert(email)&lt;br /&gt;    mail_from = (/^MAIL FROM\:&lt;(.+)&gt;.*$/).match(email)[1]&lt;br /&gt;    rcpt_to = (/^RCPT TO\:&lt;(.+)&gt;.*$/).match(email)[1]&lt;br /&gt;    subject = (/^Subject\: (.+)$/).match(email)[1]&lt;br /&gt;    Email.create(:mail_from =&gt; mail_from, :rcpt_to =&gt; rcpt_to, :subject =&gt; subject, :email =&gt; email)&lt;br /&gt;  end&lt;br /&gt;  &lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;a = SMTPServer.new(25)&lt;br /&gt;a.start&lt;br /&gt;a.join&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 19 Feb 2008 07:56:06 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5152</guid>
      <author>markpercival (Mark Percival)</author>
    </item>
    <item>
      <title>Ultra-simplistic Ruby SMTP server</title>
      <link>http://snippets.dzone.com/posts/show/3932</link>
      <description>You'll know if you need this, otherwise steer clear ;-)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;require 'gserver'&lt;br /&gt;&lt;br /&gt;class SMTPServer &lt; GServer&lt;br /&gt;  def serve(io)&lt;br /&gt;    @data_mode = false&lt;br /&gt;    puts "Connected"&lt;br /&gt;    io.print "220 hello\r\n"&lt;br /&gt;    loop do&lt;br /&gt;      if IO.select([io], nil, nil, 0.1)&lt;br /&gt;	      data = io.readpartial(4096)&lt;br /&gt;	      puts "&gt;&gt;" + data&lt;br /&gt;	      ok, op = process_line(data)&lt;br /&gt;	      break unless ok&lt;br /&gt;	      io.print op&lt;br /&gt;      end&lt;br /&gt;      break if io.closed?&lt;br /&gt;    end&lt;br /&gt;    io.print "221 bye\r\n"&lt;br /&gt;    io.close&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def process_line(line)&lt;br /&gt;    if (line =~ /^(HELO|EHLO)/)&lt;br /&gt;      return true, "220 and..?\r\n"&lt;br /&gt;    end&lt;br /&gt;    if (line =~ /^QUIT/)&lt;br /&gt;      return false, "bye\r\n"&lt;br /&gt;    end&lt;br /&gt;    if (line =~ /^MAIL FROM\:/)&lt;br /&gt;      return true, "220 OK\r\n"&lt;br /&gt;    end&lt;br /&gt;    if (line =~ /^RCPT TO\:/)&lt;br /&gt;      return true, "220 OK\r\n"&lt;br /&gt;    end&lt;br /&gt;    if (line =~ /^DATA/)&lt;br /&gt;      @data_mode = true&lt;br /&gt;      return true, "354 Enter message, ending with \".\" on a line by itself\r\n"&lt;br /&gt;    end&lt;br /&gt;    if (@data_mode) &amp;&amp; (line.chomp =~ /^.$/)&lt;br /&gt;      @data_mode = false&lt;br /&gt;      return true, "220 OK\r\n"&lt;br /&gt;    end&lt;br /&gt;    if @data_mode&lt;br /&gt;      puts line &lt;br /&gt;      return true, ""&lt;br /&gt;    else&lt;br /&gt;      return true, "500 ERROR\r\n"&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;a = SMTPServer.new(1234)&lt;br /&gt;a.start&lt;br /&gt;a.join&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sun, 29 Apr 2007 05:52:52 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3932</guid>
      <author>peter (Peter Cooperx)</author>
    </item>
    <item>
      <title>Send Email in Python with Text File Attachment</title>
      <link>http://snippets.dzone.com/posts/show/3910</link>
      <description>// description of your code here&lt;br /&gt;Send an email in python with a text attachment. You can change the attachment type by adjusting the part.startbody label in the attachment section (ie, 'image/jpg' or whatever)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import smtplib, sys, MimeWriter, StringIO, base64&lt;br /&gt;import os&lt;br /&gt;def mail(serverURL=None, sender='', to='', subject='', text=''):&lt;br /&gt;    """&lt;br /&gt;    Usage:&lt;br /&gt;    mail('somemailserver.com', 'me@example.com', 'someone@example.com', 'test', 'This is a test')&lt;br /&gt;    """&lt;br /&gt;    message = StringIO.StringIO()&lt;br /&gt;    writer = MimeWriter.MimeWriter(message)&lt;br /&gt;    writer.addheader('Subject', subject)&lt;br /&gt;    writer.startmultipartbody('mixed')&lt;br /&gt;&lt;br /&gt;    # start off with a text/plain part&lt;br /&gt;    part = writer.nextpart()&lt;br /&gt;    body = part.startbody('text/plain')&lt;br /&gt;    body.write(text)&lt;br /&gt;&lt;br /&gt;    # now add an attachment&lt;br /&gt;    part = writer.nextpart()&lt;br /&gt;    part.addheader('Content-Transfer-Encoding', 'base64')&lt;br /&gt;    body = part.startbody('text/plain')&lt;br /&gt;    base64.encode(open('myfile.txt', 'rb'), body)&lt;br /&gt;&lt;br /&gt;    # finish off&lt;br /&gt;    writer.lastpart()&lt;br /&gt;&lt;br /&gt;    # send the mail&lt;br /&gt;    smtp = smtplib.SMTP(serverURL)&lt;br /&gt;    smtp.sendmail(sender, to, message.getvalue())&lt;br /&gt;    smtp.quit()&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 26 Apr 2007 17:23:42 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3910</guid>
      <author>minitotoro (Natalie)</author>
    </item>
    <item>
      <title>Send an Email from Python</title>
      <link>http://snippets.dzone.com/posts/show/3909</link>
      <description>// description of your code here&lt;br /&gt;Not sure where I got this from, but it does its job. Sends a simple smtp email message in python.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import smtplib&lt;br /&gt;def mail(serverURL=None, sender='', to='', subject='', text=''):&lt;br /&gt;    """&lt;br /&gt;    Usage:&lt;br /&gt;    mail('somemailserver.com', 'me@example.com', 'someone@example.com', 'test', 'This is a test')&lt;br /&gt;    """&lt;br /&gt;    headers = "From: %s\r\nTo: %s\r\nSubject: %s\r\n\r\n" % (sender, to, subject)&lt;br /&gt;    message = headers + text&lt;br /&gt;    mailServer = smtplib.SMTP(serverURL)&lt;br /&gt;    mailServer.sendmail(sender, to, message)&lt;br /&gt;    mailServer.quit()&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 26 Apr 2007 16:24:34 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3909</guid>
      <author>minitotoro (Natalie)</author>
    </item>
    <item>
      <title>Authenticate with SMTP server before sending email</title>
      <link>http://snippets.dzone.com/posts/show/3328</link>
      <description>For more info see: http://java.sun.com/products/javamail/javadocs/com/sun/mail/smtp/package-summary.html&lt;br /&gt;&lt;br /&gt;You need activation.jar, smtp.jar, and mailapi.jar in your classpath for this to work.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.util.Properties;&lt;br /&gt;&lt;br /&gt;import javax.mail.Message;&lt;br /&gt;import javax.mail.MessagingException;&lt;br /&gt;import javax.mail.PasswordAuthentication;&lt;br /&gt;import javax.mail.Session;&lt;br /&gt;import javax.mail.Transport;&lt;br /&gt;import javax.mail.internet.InternetAddress;&lt;br /&gt;import javax.mail.internet.MimeMessage;&lt;br /&gt;import javax.mail.internet.MimeMessage.RecipientType;&lt;br /&gt;&lt;br /&gt;public class MailWithPasswordAuthentication {&lt;br /&gt;	public static void main(String[] args) throws MessagingException {&lt;br /&gt;		new MailWithPasswordAuthentication().run();&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private void run() throws MessagingException {&lt;br /&gt;		Message message = new MimeMessage(getSession());&lt;br /&gt;&lt;br /&gt;		message.addRecipient(RecipientType.TO, new InternetAddress("to@example.com"));&lt;br /&gt;		message.addFrom(new InternetAddress[] { new InternetAddress("from@example.com") });&lt;br /&gt;&lt;br /&gt;		message.setSubject("the subject");&lt;br /&gt;		message.setContent("the body", "text/plain");&lt;br /&gt;&lt;br /&gt;		Transport.send(message);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private Session getSession() {&lt;br /&gt;		Authenticator authenticator = new Authenticator();&lt;br /&gt;&lt;br /&gt;		Properties properties = new Properties();&lt;br /&gt;		properties.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());&lt;br /&gt;		properties.setProperty("mail.smtp.auth", "true");&lt;br /&gt;&lt;br /&gt;		properties.setProperty("mail.smtp.host", "mail.example.com");&lt;br /&gt;		properties.setProperty("mail.smtp.port", "25");&lt;br /&gt;&lt;br /&gt;		return Session.getInstance(properties, authenticator);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	private class Authenticator extends javax.mail.Authenticator {&lt;br /&gt;		private PasswordAuthentication authentication;&lt;br /&gt;&lt;br /&gt;		public Authenticator() {&lt;br /&gt;			String username = "auth-user";&lt;br /&gt;			String password = "auth-password";&lt;br /&gt;			authentication = new PasswordAuthentication(username, password);&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		protected PasswordAuthentication getPasswordAuthentication() {&lt;br /&gt;			return authentication;&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;</description>
      <pubDate>Fri, 19 Jan 2007 00:55:15 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3328</guid>
      <author>mikehale (Michael Hale)</author>
    </item>
    <item>
      <title>CPP SMTP Client</title>
      <link>http://snippets.dzone.com/posts/show/1896</link>
      <description>An SMTP client in CPP, apparently for a Linux machine.  It was found in my old source code folder and so may not be fully working.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;br /&gt;#include &lt;sys/types.h&gt;&lt;br /&gt;#include &lt;sys/socket.h&gt;&lt;br /&gt;#include &lt;netinet/in.h&gt;&lt;br /&gt;#include &lt;netdb.h&gt;&lt;br /&gt;#include &lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;#define HELO "HELO\n"&lt;br /&gt;#define DATA "DATA\n"&lt;br /&gt;#define QUIT "QUIT\n"&lt;br /&gt;&lt;br /&gt;FILE *fin;&lt;br /&gt;int sock;&lt;br /&gt;struct sockaddr_in server;&lt;br /&gt;struct hostent *hp, *gethostbyname();&lt;br /&gt;char buf[BUFSIZ+1];&lt;br /&gt;int len;&lt;br /&gt;char *host_id;&lt;br /&gt;char *from_id;&lt;br /&gt;char *to_id;&lt;br /&gt;char *file_id;&lt;br /&gt;char wkstr[100];&lt;br /&gt;&lt;br /&gt;/*=====Send a string to the socket=====*/&lt;br /&gt;&lt;br /&gt;send_socket(char *s)&lt;br /&gt;{&lt;br /&gt;	write(sock,s,strlen(s));&lt;br /&gt;	write(1,s,strlen(s));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*=====Read a string from the socket=====*/&lt;br /&gt;&lt;br /&gt;read_socket()&lt;br /&gt;{&lt;br /&gt;	len = read(sock,buf,BUFSIZ);&lt;br /&gt;	write(1,buf,len);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*=====MAIN=====*/&lt;br /&gt;int main(int argc, char* argv[])&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;if(argc != 5)&lt;br /&gt;{&lt;br /&gt; printf("USAGE: %s &lt;host&gt; &lt;from&gt; &lt;to&gt; &lt;filename&gt;\n\n", argv[0]);&lt;br /&gt; exit(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;host_id=argv[1];&lt;br /&gt;from_id=argv[2];&lt;br /&gt;to_id=argv[3];&lt;br /&gt;file_id=argv[4];&lt;br /&gt;&lt;br /&gt;/*=====Create Socket=====*/&lt;br /&gt;sock = socket(AF_INET, SOCK_STREAM, 0);&lt;br /&gt;if (sock==-1)&lt;br /&gt;{&lt;br /&gt; perror("opening stream socket");&lt;br /&gt; exit(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*=====Verify host=====*/&lt;br /&gt;server.sin_family = AF_INET;&lt;br /&gt;hp = gethostbyname(host_id);&lt;br /&gt;if (hp==(struct hostent *) 0)&lt;br /&gt;{&lt;br /&gt; fprintf(stderr, "%s: unknown host\n", host_id);&lt;br /&gt; exit(2);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*=====Connect to port 25 on remote host=====*/&lt;br /&gt;printf ("hostent %s\n", hp-&gt;h_addr_list[0]);&lt;br /&gt;memcpy((char *) &amp;server.sin_addr, (char *) hp-&gt;h_addr, hp-&gt;h_length);&lt;br /&gt;&lt;br /&gt;server.sin_port=htons(25); /* SMTP PORT */&lt;br /&gt;&lt;br /&gt;if (connect(sock, (struct sockaddr *) &amp;server, sizeof server)==-1)&lt;br /&gt;{&lt;br /&gt; perror("connecting stream socket");&lt;br /&gt; exit(1);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/*=====Write some data then read some =====*/&lt;br /&gt;&lt;br /&gt;read_socket(); /* SMTP Server logon string */&lt;br /&gt;&lt;br /&gt;send_socket(HELO); /* introduce ourselves */&lt;br /&gt;read_socket(); /*Read reply */&lt;br /&gt;&lt;br /&gt;send_socket("MAIL from: "); /* Mail from us */&lt;br /&gt;send_socket(from_id);&lt;br /&gt;send_socket("\n");&lt;br /&gt;read_socket(); /* Sender OK */&lt;br /&gt;&lt;br /&gt;send_socket("RCPT To: "); /*Mail to*/&lt;br /&gt;send_socket(to_id);&lt;br /&gt;send_socket("\n");&lt;br /&gt;read_socket(); /*Recipient OK*/&lt;br /&gt;&lt;br /&gt;send_socket(DATA);/*body to follow*/&lt;br /&gt;read_socket(); /*ok to send */&lt;br /&gt;&lt;br /&gt;fin=fopen(file_id, "r"); /* open file */&lt;br /&gt;while(1)&lt;br /&gt;{&lt;br /&gt; if(fgets(wkstr, 100, fin)==NULL) break; /* exit on EOF */&lt;br /&gt; send_socket(wkstr);&lt;br /&gt;}&lt;br /&gt;fclose(fin); /* close file */&lt;br /&gt;&lt;br /&gt;send_socket(fin); /*send file*/&lt;br /&gt;send_socket(".\n");&lt;br /&gt;&lt;br /&gt;read_socket(); /* OK*/&lt;br /&gt;send_socket(QUIT); /* quit */&lt;br /&gt;read_socket(); /* log off */&lt;br /&gt;&lt;br /&gt;/*=====Close socket and finish=====*/&lt;br /&gt;close(sock);&lt;br /&gt;exit(0);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 11 Apr 2006 20:43:40 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1896</guid>
      <author>lordrich ()</author>
    </item>
    <item>
      <title>Simple webform to test mail</title>
      <link>http://snippets.dzone.com/posts/show/906</link>
      <description>&lt;code&gt;&lt;br /&gt;&lt;%@ Page Language="C#" %&gt;&lt;br /&gt;&lt;%@ Import Namespace="System.Web.Mail" %&gt;&lt;br /&gt;&lt;script runat="server"&gt;    &lt;br /&gt;void btnSubmit_Click(Object sender, EventArgs e) {&lt;br /&gt;  MailMessage mail = new MailMessage();&lt;br /&gt;  mail.To = txtTo.Text;&lt;br /&gt;  mail.From = txtFrom.Text;&lt;br /&gt;  mail.Subject = txtSubject.Text;&lt;br /&gt;  mail.Body = txtMessage.Text;&lt;br /&gt;  mail.Priority = MailPriority.High;&lt;br /&gt;  mail.BodyFormat = MailFormat.Text;&lt;br /&gt;  SmtpMail.SmtpServer = txtSmtpServer.Text;&lt;br /&gt;  if (txtSmtpUsername.Text.Trim() != "") {&lt;br /&gt;    if (txtSmtpPassword.Text.Trim() != "") {&lt;br /&gt;      mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");&lt;br /&gt;      mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", txtSmtpUsername.Text);&lt;br /&gt;      mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", txtSmtpPassword.Text);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;  try {&lt;br /&gt;    SmtpMail.Send(mail);&lt;br /&gt;    Response.Write("OK!");&lt;br /&gt;  } catch (Exception ex) {&lt;br /&gt;    Response.Write("KO: " + ex.ToString());&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;html&gt;&lt;br /&gt;  &lt;head&gt;&lt;br /&gt;    &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;&lt;br /&gt;    &lt;title&gt;Mail test&lt;/title&gt;&lt;br /&gt;  &lt;/head&gt;&lt;br /&gt;  &lt;body&gt;&lt;br /&gt;    &lt;form runat="server"&gt;&lt;br /&gt;      &lt;ul&gt;&lt;br /&gt;        &lt;li&gt;Smtp Server : &lt;asp:TextBox id="txtSmtpServer" runat="server"&gt;&lt;/asp:TextBox&gt;&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;Smtp Username : &lt;asp:TextBox id="txtSmtpUsername" runat="server"&gt;&lt;/asp:TextBox&gt;&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;Smtp Password : &lt;asp:TextBox id="txtSmtpPassword" runat="server"&gt;&lt;/asp:TextBox&gt;&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;From : &lt;asp:TextBox id="txtFrom" runat="server"&gt;&lt;/asp:TextBox&gt;&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;To : &lt;asp:TextBox id="txtTo" runat="server"&gt;&lt;/asp:TextBox&gt;&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;Subject : &lt;asp:TextBox id="txtSubject" runat="server"&gt;&lt;/asp:TextBox&gt;&lt;/li&gt;&lt;br /&gt;        &lt;li&gt;Message : &lt;asp:TextBox id="txtMessage" TextMode="MultiLine" runat="server"&gt;&lt;/asp:TextBox&gt;&lt;/li&gt;&lt;br /&gt;      &lt;/ul&gt;&lt;br /&gt;      &lt;asp:Button runat="server" id="btnSubmit" OnClick="btnSubmit_Click" Text="Send"&gt;&lt;/asp:Button&gt;&lt;br /&gt;    &lt;/form&gt;&lt;br /&gt;  &lt;/body&gt;&lt;br /&gt;&lt;/html&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 23 Nov 2005 21:30:33 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/906</guid>
      <author>ms_michel (Michel)</author>
    </item>
    <item>
      <title>python : send a mail (text), with attachments</title>
      <link>http://snippets.dzone.com/posts/show/757</link>
      <description>&lt;code&gt;&lt;br /&gt;import smtplib&lt;br /&gt;from email.MIMEMultipart import MIMEMultipart&lt;br /&gt;from email.MIMEBase import MIMEBase&lt;br /&gt;from email.MIMEText import MIMEText&lt;br /&gt;from email.Utils import COMMASPACE, formatdate&lt;br /&gt;from email import Encoders&lt;br /&gt;import os&lt;br /&gt;&lt;br /&gt;def sendMail(to, subject, text, files=[],server="localhost"):&lt;br /&gt;    assert type(to)==list&lt;br /&gt;    assert type(files)==list&lt;br /&gt;    fro = "Expediteur &lt;expediteur@mail.com&gt;"&lt;br /&gt;&lt;br /&gt;    msg = MIMEMultipart()&lt;br /&gt;    msg['From'] = fro&lt;br /&gt;    msg['To'] = COMMASPACE.join(to)&lt;br /&gt;    msg['Date'] = formatdate(localtime=True)&lt;br /&gt;    msg['Subject'] = subject&lt;br /&gt;&lt;br /&gt;    msg.attach( MIMEText(text) )&lt;br /&gt;&lt;br /&gt;    for file in files:&lt;br /&gt;        part = MIMEBase('application', "octet-stream")&lt;br /&gt;        part.set_payload( open(file,"rb").read() )&lt;br /&gt;        Encoders.encode_base64(part)&lt;br /&gt;        part.add_header('Content-Disposition', 'attachment; filename="%s"'&lt;br /&gt;                       % os.path.basename(file))&lt;br /&gt;        msg.attach(part)&lt;br /&gt;&lt;br /&gt;    smtp = smtplib.SMTP(server)&lt;br /&gt;    smtp.sendmail(fro, to, msg.as_string() )&lt;br /&gt;    smtp.close()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;sendMail(&lt;br /&gt;        ["destination@dest.kio"],&lt;br /&gt;        "hello","cheers",&lt;br /&gt;        ["photo.jpg","memo.sxw"]&lt;br /&gt;    )&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 21 Sep 2005 20:30:49 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/757</guid>
      <author>manatlan (manatlan)</author>
    </item>
    <item>
      <title>python : send a mail (text)</title>
      <link>http://snippets.dzone.com/posts/show/658</link>
      <description>&lt;code&gt;&lt;br /&gt;import smtplib&lt;br /&gt;from email.MIMEText import MIMEText&lt;br /&gt;&lt;br /&gt;def sendTextMail(to,sujet,text,server="localhost"):&lt;br /&gt;    fro = "Expediteur &lt;expediteur@mail.com&gt;"&lt;br /&gt;    mail = MIMEText(text)&lt;br /&gt;    mail['From'] = fro&lt;br /&gt;    mail['Subject'] =sujet&lt;br /&gt;    mail['To'] = to&lt;br /&gt;    smtp = smtplib.SMTP(server)&lt;br /&gt;    smtp.sendmail(fro, [to], mail.as_string())&lt;br /&gt;    smtp.close()&lt;br /&gt;    &lt;br /&gt;sendTextMail("toto@titi.com","hello","cheers")&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Thu, 08 Sep 2005 02:38:26 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/658</guid>
      <author>manatlan (manatlan)</author>
    </item>
    <item>
      <title>Sending Mail</title>
      <link>http://snippets.dzone.com/posts/show/96</link>
      <description>This code requires JavaMail.  Specifically it requires mailapi.jar and smtp.jar from the JavaMail distribution (available at http://java.sun.com/) as well as activation.jar from the JavaBeans Activation Framework (available at http://java.sun.com/beans/glasgow/jaf.html).&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Properties props = new Properties();&lt;br /&gt;props.put("mail.smtp.host", "your-smtp-host.com");&lt;br /&gt;Session session = Session.getDefaultInstance(props, null);&lt;br /&gt;&lt;br /&gt;MimeMessage msg = new MimeMessage(session);&lt;br /&gt;msg.setFrom(new InternetAddress(from));&lt;br /&gt;msg.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(to));&lt;br /&gt;msg.setSubject(subject);&lt;br /&gt;msg.setSentDate(new Date());&lt;br /&gt;msg.setContent(message, "text/plain");&lt;br /&gt;&lt;br /&gt;Transport.send(msg);&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 09 Apr 2005 05:13:01 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/96</guid>
      <author>aeden (Anthony Eden)</author>
    </item>
  </channel>
</rss>
