`
shirlly
  • 浏览: 1652462 次
  • 性别: Icon_minigender_2
  • 来自: 福州
社区版块
存档分类
最新评论

.net (c#)实现发送外部邮件的实例

阅读更多
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net.Mail;

public partial class testSendMail : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string strFrom = "xiaoxueli707325@126.com";
        string strTo = "shirlly.liao@163.com";
        string strSubject = "webtest";
        string strBody = "测试";
        System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage(strFrom, strTo, strSubject, strBody);
        message.BodyEncoding = System.Text.Encoding.UTF8;
        message.IsBodyHtml = true;

        SendSMTPEMail("smtp.126.com", "xiaoxueli707325@126.com", "111111", message);

    }
    public void SendSMTPEMail(string strSmtpServer, string strFrom, string strFromPass, MailMessage message)
    {
        try
        {
            SmtpClient client = new SmtpClient(strSmtpServer);
            client.UseDefaultCredentials = true;
            client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            
            client.Send(message);
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
}



//发送邮件的通用方法整理
 public void SendEmail(string subject, string body, params string[] tos)
        {
            string host = _commonAppService.GetSettingValue("Common_EmailHost");
            string fromName = _commonAppService.GetSettingValue("Common_EmailFromName");
            string from = _commonAppService.GetSettingValue("Common_NoreplyEmailUserName");
            string password = _commonAppService.GetSettingValue("Common_NoreplyEmailPassword");

            MailMessage message = new MailMessage();
            message.From = new MailAddress(from, fromName);
            foreach (var to in tos)
            {
                message.To.Add(to);
            }
            message.Subject = subject;
            message.Body = body;
            message.IsBodyHtml = true;

            SmtpClient smtpClient = new SmtpClient();
            smtpClient.UseDefaultCredentials = true;
            smtpClient.Credentials = new NetworkCredential(from, password);
            smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
            smtpClient.Host = host;

//如果是发送邮箱是gmail要加上这个代码否则邮件无法发送成功
            if (smtpClient.Host == "smtp.gmail.com")
            {
                smtpClient.EnableSsl = true;
                smtpClient.Port = 587;
            }

            try
            {
                smtpClient.Send(message);
            }
            catch
            {
                AssertHelper.NoPass(true, R.Package, R.Keys.K邮件_错误信息_邮件发送失败);
            }
        }


注意:
1、确保strFrom的值和strSmtpServer的值一致,否之会报Send Error:不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, authentication is required。的错误
2、确保用于发送邮件的邮箱不是刚注册的邮箱,而要用有提供SMTP服务的邮箱的帐号和密码,否则会报邮箱不可以用的错误
引用

为何新申请的邮箱不能用客户端?
  目前免费邮箱新注册的用户不支持直接开通smtp、pop3的服务,之前已开通客户端功能的老用户不受影响。如果需要使用该功能,您可开通增值服务邮箱伴侣或随身邮 ,即可同时获取poo功能。
----------------
新注册的用户付费才能使用...

3、下面两句的书写的顺序不能颠倒
client.UseDefaultCredentials = true;
client.Credentials = new System.Net.NetworkCredential(strFrom, strFromPass);

否则会报这样的错误
引用

Send Error:不允许使用邮箱名称。 服务器响应为: You are not authorized to send mail, authentication is required。就是说没有通过登录认证

4、注意126的域名是smtp.126.com
163的域名是smtp.163.com
分享到:
评论

相关推荐

    asp.net C# PDF阅读器源码

    这个源码实例使用C#编程语言,结合ASP.NET框架,为用户提供一个在线查看PDF文件的功能,无需依赖外部插件或者第三方软件。以下是这个项目的关键知识点: 1. ASP.NET:ASP.NET是由微软开发的一个用于构建动态网站、...

    asp.net c#面向对象虚拟工厂程序

    在ASP.NET C#项目中,虚拟工厂可以用来动态地创建UI组件或业务对象的实例,根据需求或配置文件选择不同的实现。这增加了代码的灵活性,使得扩展和替换变得更加容易。 总的来说,“asp.net c#面向对象虚拟工厂程序”...

    C#.NET项目开发实例代码

    在本文中,我们将深入探讨"C#.NET项目开发实例代码"这一主题,这是一份包含实际代码的资源,专为学习和理解C#.NET编程语言的应用而设计。C#(读作"C Sharp")是由微软公司推出的面向对象的编程语言,主要用于构建...

    .NET平台与C#面向对象程序设计实例代码

    《.NET平台与C#面向对象程序设计实例代码》是一个包含丰富示例的资源集合,主要针对使用.NET框架和C#编程语言进行面向对象程序设计的学习者。此资源旨在通过实例帮助开发者深入理解和掌握.NET平台及C#的核心概念,...

    c#.net 迄今最实用键盘钩子实例

    本文将深入探讨C# .NET中的键盘钩子(Keyboard Hooks)技术,这是一项实用的编程技巧,允许开发者监听和处理键盘事件,从而实现对用户输入的监控或控制。 键盘钩子是Windows API提供的一种机制,它允许程序安装一个...

    xml实例在C#.net中操作XML实例教程

    在C#.NET中操作XML是开发人员经常遇到的需求,特别是在处理数据交换、配置文件或集成外部服务时。本文将深入探讨如何使用C#.NET来创建、读取、更新和保存XML文档,通过具体实例帮助读者掌握这一技能。 ### 一、创建...

    .NET C# OOP面向对象技术

    在本主题".NET C# OOP面向对象技术"中,我们将深入探讨C#中的面向对象编程概念、方法及其实现。 1. 类(Class):类是面向对象编程的基础,它是描述对象特性和行为的模板。在C#中,我们使用关键字`class`来定义一个...

    AutoCAD VBA$VB.NET开发基础与实例教程c#版.zip

    本教程“AutoCAD VBA$VB.NET开发基础与实例教程c#版”旨在帮助初学者和进阶用户掌握在AutoCAD中使用VBA、VB.NET和C#进行编程的基本知识和技巧。以下是一些可能涵盖的关键知识点: 1. **AutoCAD编程接口(API)**:...

    C# 邮箱自动发送邮件程序

    为了实现群发,可以在`SendEmail`方法内部或外部增加一个收件人列表,并通过循环调用`SendEmail`来发送邮件。 总的来说,创建一个C#自动发送邮件的程序需要理解SMTP协议、电子邮件的结构以及如何使用C#的`System...

    .net c#源码实例SVG转换png/jpeg/jpg/pdf(svg.dll itextsharp.dll)

    总之,这个C#实例展示了如何利用SVG.dll和iTextSharp.dll库来处理SVG文件,实现多种格式的转换。这种能力在需要跨平台、高质量图像输出或者需要在PDF文档中嵌入矢量图像的场景下非常有用。在实际应用中,可能还需要...

    .NET C#创建WebService服务简单实例

    .NET C#创建WebService服务是一种常见的技术,用于构建可被不同平台和应用程序访问的分布式系统。在本文中,我们将深入探讨如何使用C#在.NET框架下创建一个简单的WebService服务。 首先,理解WebService的基本概念...

    FCK类库(ASP.NET c# 适合所有人)

    4. **链接编辑**:支持添加内部链接、外部链接以及电子邮件链接,方便用户快速构建网页内容。 5. **源代码查看**:用户可以切换到HTML源代码模式,直接编辑HTML代码。 6. **插件扩展**:FCKeditor拥有强大的插件...

    Asp.net C#生成pdf文件

    在Asp.net中使用C#生成PDF文件是一个常见的需求,特别是在需要将网页内容导出为可打印或离线阅读格式时。本知识点将详细介绍如何在不依赖服务器上安装额外软件的情况下,利用开源库来实现这一功能。在此示例中,我们...

    AutoCAD.NET开发人员手册(vb.net\c#.net)

    9. **数据库服务**:AutoCAD.NET提供了数据库服务,可以进行块、属性、外部参照等高级操作,增强设计数据的管理和复用。 10. **绘图和打印**:你可以控制AutoCAD进行精确的绘图操作,并设置打印参数,实现自动化的...

    C#调用winrar压缩文件实例---C#.Net实例代码

    在.NET环境中,C#语言可以调用外部程序来执行任务,比如使用WinRAR进行文件的压缩操作。这个实例代码展示了如何在C#中通过启动WinRAR的命令行接口(Rar.exe)来实现文件或文件夹的压缩。下面将详细解释这一过程。 ...

    .NET 7层架构实例

    在.NET框架下,开发者可以利用ASP.NET Core、C#和各种NuGet包来实现这样的架构。 在实际开发过程中,.NET 7层架构实例可能还会涉及其他组件,如缓存层(用于提高性能)、异常处理层(处理运行时错误)和日志记录层...

    iBatisNet项目实例

    在这个"iBatisNet项目实例"中,我们可以深入学习如何在C#项目中有效地使用iBatis.Net。 首先,`.sln`文件是Visual Studio解决方案文件,它包含了项目的所有相关信息,如项目之间的依赖关系、编译设置等。打开这个`...

    Asp.net网站天气预报实例

    【Asp.net网站天气预报实例】是一个基于ASP.NET 4.0技术开发的应用,它能够为内网用户提供实时的在线天气信息,即使在无法访问外部网络的环境下也能正常运作。这个实例展示了如何利用Web技术来获取和展示天气数据,...

Global site tag (gtag.js) - Google Analytics