gmail的smtp采用了ssl连接:
Outgoing Mail (SMTP) Server - requires TLS: smtp.gmail.com (use authentication)
Use Authentication: Yes
Use STARTTLS: Yes (some clients call this SSL)
Port: 465 or 587
知道了gmail的发信细节,用System.Net.Mail,就是下面这段代码就可以了
using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using System.Net.Mail;
namespace GMailSend
{
class Program
{
static void Main(string[] args)
{
try
{
Program prg = new Program();
prg.Host = "smtp.gmail.com";
prg.SmtpUsername = "zhangshanyou@gmail.com";
prg.SmtpPassword = "xxxxxxxx";
prg.Port = 587;
prg.Send("zhangshanyou@gmail.com","33235911@qq.com", "test", "test", null, null);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
}
private string _host;
public string Host
{
get { return _host; }
set { _host = value; }
}
private int _port;
public int Port
{
get { return _port; }
set { _port = value; }
}
private string _smtpUsername;
public string SmtpUsername
{
get { return _smtpUsername; }
set { _smtpUsername = value; }
}
private string _smtpPassword;
public string SmtpPassword
{
get { return _smtpPassword; }
set { _smtpPassword = value; }
}
public void Send(string from, string to, string subject, string body, string[] cc, string[] bcc)
{
// Create mail message
MailMessage message = new MailMessage(from, to, subject, body);
message.BodyEncoding = Encoding.GetEncoding(936);
if (cc != null && cc.Length > 0)
{
foreach (string ccAddress in cc)
{
message.CC.Add(new MailAddress(ccAddress));
}
}
if (bcc != null && bcc.Length > 0)
{
foreach (string bccAddress in bcc)
{
message.Bcc.Add(new MailAddress(bccAddress));
}
}
// Send email
SmtpClient client = new SmtpClient(this._host, this._port);
if (!String.IsNullOrEmpty(this._smtpUsername) && !String.IsNullOrEmpty(this._smtpPassword))
{
client.Credentials = new NetworkCredential(this._smtpUsername, this._smtpPassword);
}
client.EnableSsl = true;
client.Send(message);
}
}
}