利用SmtpClient发送邮件

代码:

1  163邮箱 HOST:smtp.163.com

   

2 QQ邮箱

  QQ邮箱默认的SMTP服务是关闭的,要自己去开通。

  HOST:smtp.qq.com

  

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
//初始化邮件类 void InitEmail(C01waSendMail* m_globalEmail,String sendermail,String sender,String senderpwd,String srv,int port = 25,bool bSsl = false) { m_globalEmail->m_Auth = CPJNSMTPConnection::AuthenticationMethod::AUTH_AUTO; m_globalEmail->m_bAutoDial = true; m_globalEmail->m_bSSL = bSsl; m_globalEmail->m_sUsername = sender.c_str(); m_globalEmail->m_sAddress = sendermail.c_str(); m_globalEmail->m_sPassword = senderpwd.c_str(); m_globalEmail->m_sHost = srv.c_str(); m_globalEmail->m_nPort = port; m_globalEmail->m_sEncodingFriendly = _T("Chinese Simplified (GB2312)"); m_globalEmail->m_sEncodingCharset = _T("gb2312"); m_globalEmail->m_bMime = 1; m_globalEmail->m_bHTML = 1; m_globalEmail->m_Priority = CPJNSMTPMessage::PRIORITY::NormalPriority; m_globalEmail->m_bDSN = FALSE; m_globalEmail->m_bDSNSuccess = FALSE; m_globalEmail->m_bDSNFailure = FALSE; m_globalEmail->m_bDSNDelay = FALSE; m_globalEmail->m_bDSNHeaders = FALSE; m_globalEmail->m_bDNSLookup = FALSE; } //发送邮件 void SendEmail(const char* recvemail,const char* subject,const char* body,const char * sCC=NULL,const char * bCC = NULL,const char * attach = NULL) { //初始化邮箱 //注意释放内存 C01waSendMail *m_globalEmail = new C01waSendMail; if(strlen(m_con1.m_eamil)>0&&strlen(m_con1.m_pwd)&&strlen(m_con1.m_smtpsrv)&&m_con1.port>0) { char * p = strdup(m_con1.m_eamil); char * pp = strstr(p,"@"); if(pp>0) pp[0] = '\0'; InitEmail(m_globalEmail,m_con1.m_eamil,p,m_con1.m_pwd,m_con1.m_smtpsrv,m_con1.port,m_con1.ssl); free(p); if(subject>0) m_globalEmail->m_sSubject.Format("%s",subject); if(sCC>0) m_globalEmail->m_sCC.Format("%s",sCC); if(bCC>0) m_globalEmail->m_sBCC.Format("%s",bCC); if(body>0) m_globalEmail->m_sBody.Format("%s",body); if(attach>0) m_globalEmail->m_sFile.Format("%s",attach); if(recvemail>0) m_globalEmail->m_sTo.Format("%s",recvemail); m_globalEmail->SendEmail(); } }
您可以使用System.Net.Mail命名空间中的SmtpClient类和MailMessage类来在WinForms应用程序中发送电子邮件。以下是一个简单的示例: 首先,确保在项目中添加对System.Net.Mail命名空间的引用。 然后,您可以使用以下代码发送电子邮件: ```csharp using System; using System.Net; using System.Net.Mail; using System.Windows.Forms; namespace YourNamespace { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void buttonSend_Click(object sender, EventArgs e) { try { // 创建一个MailMessage对象 MailMessage mail = new MailMessage(); mail.From = new MailAddress("your_email@example.com"); // 发件人邮箱 mail.To.Add(textBoxTo.Text); // 收件人邮箱 mail.Subject = textBoxSubject.Text; // 邮件主题 mail.Body = textBoxBody.Text; // 邮件正文 // 创建一个SmtpClient对象,并设置SMTP服务器地址和端口号 SmtpClient smtpClient = new SmtpClient("smtp.example.com", 587); // 例如:smtp.gmail.com // 设置SMTP服务器的登录凭据(发件人邮箱和密码) smtpClient.Credentials = new NetworkCredential("your_email@example.com", "your_password"); // 启用SSL加密连接 smtpClient.EnableSsl = true; // 发送邮件 smtpClient.Send(mail); MessageBox.Show("邮件已发送成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show("发送邮件时出现错误:" + ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } ``` 在上面的示例中,我们创建了一个名为Form1的WinForms窗体,并添加了三个文本框(textBoxTo,textBoxSubject和textBoxBody),以及一个按钮(buttonSend)来触发发送邮件的操作。在按钮的Click事件处理程序中,我们使用MailMessage类设置邮件的各个属性,使用SmtpClient类设置SMTP服务器的相关信息,然后调用SmtpClient的Send方法发送邮件。 请注意,您需要将示例中的电子邮件地址(发件人和收件人)、SMTP服务器地址和端口号、发件人邮箱的登录凭据(邮箱和密码)替换为您自己的信息。 希望对您有所帮助!如有任何问题,请随时提问。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值