Send html Email

本文介绍了一种使用C#语言实现发送HTML格式电子邮件的方法。通过配置SMTP客户端并利用WebRequest获取HTML内容作为邮件正文,实现了从指定URL读取HTML内容并将其作为邮件正文发送的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 using System.Net.Mail;
using System.Net;
using System.IO;
using System.Text;

 

///

 

protected void SendEmail(DataSet ds)
    {

        MailMessage regMsg = new MailMessage();
        regMsg.From = new MailAddress(ConfigurationManager.AppSettings["SendFrom"].ToString(), ConfigurationManager.AppSettings["sender"].ToString(), System.Text.Encoding.UTF8);
        regMsg.To.Add(txtEmil.Text);
        regMsg.Subject = "Successful registration";
        regMsg.ReplyTo = new MailAddress(ConfigurationManager.AppSettings["ReplyTo"].ToString(), ConfigurationManager.AppSettings["sender"].ToString());

        //regMsg.Body = "<h2>This is an HTML-Formatted Email Send Using the <code>IsBodyHtml</code>=Property</h2><p>Isn't HTML <em>neat</em>?</p><p>You can make all sorts=of <span style=3D'color:red;font-weight:bold;'>pretty colors!!</span>.</p>";
        //regMsg.Body = "<iframe src='http://www.baidu.com'></iframe>";
        regMsg.IsBodyHtml = true;
        regMsg.BodyEncoding = Encoding.UTF8;


        // method 1

        WebRequest therequest = WebRequest.Create(ConfigurationManager.AppSettings["sendUri"].ToString());
        WebResponse theresponse = therequest.GetResponse();
        Stream thestream = theresponse.GetResponseStream();
        StreamReader sr = new StreamReader(thestream, System.Text.Encoding.Default);
        regMsg.Body = sr.ReadToEnd();
        sr.Close();
        thestream.Close();  

        //method 2

        //WebClient wc = new WebClient();
        //wc.Credentials = CredentialCache.DefaultCredentials;
        //Byte[] pageData = wc.DownloadData(ConfigurationManager.AppSettings["sendUri"].ToString());
        //regMsg.Body = Encoding.Default.GetString(pageData);
        //wc.Dispose();

        //SmtpClient client = new SmtpClient("localhost");
        //client.UseDefaultCredentials = true;

        //method 3

        //MailMessage message = new MailMessage(ConfigurationManager.AppSettings["SendFrom"].ToString(), txtEmil.Text);
        //message.Subject = "Successful registration";
        //message.IsBodyHtml = true;

        //message.BodyEncoding = Encoding.UTF8;
        //SmtpClient client = new SmtpClient(ConfigurationManager.AppSettings["EmailServer"].ToString());

        //WebRequest therequest = WebRequest.Create(ConfigurationManager.AppSettings["sendUri"].ToString());
        //WebResponse theresponse = therequest.GetResponse();
        //Stream thestream = theresponse.GetResponseStream();
        //StreamReader sr = new StreamReader(thestream, System.Text.Encoding.Default);
        //message.Body = sr.ReadToEnd();
        //sr.Close();
        //thestream.Close();  

        //client.Send(message);

        SmtpClient client = new SmtpClient();
        //client.Host = "localhost";
        client.Credentials = CredentialCache.DefaultNetworkCredentials;
        //object userState = regMsg;
       
        try
        {
            //client.SendAsync(regMsg, userState);
            client.Send(regMsg);
        }
        catch
        {
           
        }

 }

<think>嗯,用户现在想找n8n中发送电子邮件的教程或示例。看起来用户已经在探索n8n的工作流程自动化,特别是邮件发送功能。之前用户提到的几个引用其实不太相关,比如Mattermost节点、虚拟化信息和Linux重定向,可能用户之前尝试过其他集成场景。用户可能正在搭建业务通知系统,需要自动发送会议邀请或报告。考虑到n8n主要面向技术用户,ta应该具备基本的技术背景。邮件功能作为基础节点但配置项较多,用户可能需要具体字段填写指导而不是概念说明。关于n8n的邮件节点,需要提醒几个关键点:用户必须预先配置好SMTP连接(比如Gmail或企业邮箱),邮件的HTML支持需要手动开启,测试时建议先发送到自己的地址避免触发反垃圾机制。工作流程中邮件节点常出现在审批流之后或错误处理分支,比如用户引用中提到的Mattermost通知后可能就需要接邮件通知。官方文档其实有现成用例可以直接搬过来改造。考虑把邮件节点拆解成三部分回复比较清晰:基础配置(服务商和凭证)、邮件内容模板、附件等高级功能。附件部分特别要注意本地文件路径和二进制流处理的区别,很多新手会卡在这里。用户引用里的Linux重定向知识虽然和主题无关,但暗示ta可能习惯命令行操作。回复可以考虑提一下n8nCLI执行方式,虽然不必须但能增加亲和力。最后留的扩展问题要覆盖常见场景:如何加密邮件、处理发送失败、集成收件功能等,这些都是实际使用中会遇到的坎儿。</think> 以下是n8n中发送电子邮件功能的完整指南及实现示例,整合了关键配置步骤和实际应用场景: --- ### 📧 n8n发送电子邮件功能指南 #### **核心配置步骤** 1. **添加节点** - 在工作流编辑器中添加「**Email**」节点(位于Communication类别中) 2. **选择邮件服务** 支持主流服务商: ```markdown - SMTP (通用协议) - Gmail/Outlook (需OAuth2授权) - Mailchimp/SendGrid (第三方服务) ``` 3. **凭证配置**(以SMTP为例) ```json Host: "smtp.yourdomain.com" Port: 465 (SSL) 或 587 (TLS) Username: "your@email.com" Password: "专用应用密码" // 非邮箱登录密码 Security: SSL/TLS ``` > 📌 注:Gmail需开启[「低安全性应用访问」](https://myaccount.google.com/lesssecureapps) 或使用OAuth2 4. **邮件内容模板** ```handlebars 收件人:{{ $json.to }} 主题:Meeting Invitation - {{ $json.date }} 正文: <p>Hello {{ $json.name }},</p> <p>会议链接: <a href="{{ $json.link }}">Click here</a></p> ``` 5. **附件支持** 通过**Binary Data**字段添加(需前置节点输出文件流) --- ### ✨ **工作流示例:自动发送会议邮件** ```mermaid graph LR A[Webhook] --> B(HTTP Request) B --> C(Email节点) C --> D[邮件发送成功] ``` 1. **HTTP Request节点**获取会议数据: ```json // 模拟响应数据 { "to": "client@domain.com", "date": "2023-12-01 10:00", "name": "张先生", "link": "https://meet.whereby.com/room123" } ``` 2. **Email节点配置**: ```markdown ► 字段绑定: • To: `{{ $json.to }}` • Subject: `会议邀请 - {{ $json.date }}` • HTML Body: ` <p>尊敬的{{ $json.name }}:</p> <p>请点击参会:<a href="{{ $json.link }}">进入会议室</a></p> ` ► 附件: • Source: Previous Node Binary Data • Property: `data` // 来自前序节点的文件流 ``` --- ### ⚠️ **常见问题排查** | 问题类型 | 解决方案 | |------------------|-------------------------| | ❌ 认证失败 | 检查端口/密码/安全协议 | | ❌ 附件无法发送 | 确认前序节点输出Binary数据| | ❌ HTML渲染异常 | 检查HTML标签闭合 | --- ### 🔍 **推荐学习资源** 1. [官方SMTP配置文档](https://docs.n8n.io/integrations/builtin/credentials/smtp/) 2. [Gmail OAuth2授权教程](https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/) 3. [附件处理范例](https://docs.n8n.io/examples/email-attachments/) --- **扩展问题**: 1. 如何实现邮件发送失败时的自动重试机制? 2. 怎样在邮件中动态嵌入表格数据? 3. 如何通过n8n实现邮件+Slack的双重通知? > 提示:邮件节点常与**条件逻辑节点**(if-else)联动,实现错误处理流,建议测试时先使用[Mailtrap](https://mailtrap.io/)等沙箱服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值