C# SMTP回复方法

C# SMTP回复方法,c#,smtp,smtpclient,C#,Smtp,Smtpclient,我正在创建一个WebMail客户端,但我有一个问题。 如果只使用SMTPClient,发送邮件很容易,但是如何发送回复,例如,如果用户决定回复邮件, 它基本上只是复制旧的主体并将其附加到我将要发送的新主体,还是回复消息的更好方式 所以我最想做的就是 MailAddress replyto = new MailAddress("reply@whosoever.something"); replyto.What? = recievedmessage ID? (wich I get from my I

我正在创建一个WebMail客户端,但我有一个问题。
如果只使用SMTPClient,发送邮件很容易,但是如何发送回复,例如,如果用户决定回复邮件, 它基本上只是复制旧的主体并将其附加到我将要发送的新主体,还是回复消息的更好方式

所以我最想做的就是

MailAddress replyto = new MailAddress("reply@whosoever.something");
replyto.What? = recievedmessage ID? (wich I get from my Imap Library)
replyto.Headers["whatgoeshere"] = recievedmessage ID? (wich I get from my Imap Library)

根据我的经验,这取决于你,只要新信息的格式正确,你就可以自由地做你想做的事情。SMTP本质上是一个中继代理,而不是邮件服务商。

首先,回复邮件应该做以下事情(这些都比其他任何事情都重要):

  • 回复邮件的
    To
    标题应设置为原始邮件的
    Reply To
    值(如果设置),否则设置为
    From
  • 回复邮件的
    主题
    标题应设置为原始邮件的
    主题
    标题的值,但带有
    “Re:
    前缀(除非已经有前缀)
  • 回复至标题的回复邮件的
    应设置为原始邮件的
    邮件Id
    标题值
  • 回复邮件的
    引用
    标题应设置为原始邮件的
    引用
    标题值,并附加原始邮件的
    邮件Id
  • 这会处理标题。对于邮件正文,这将取决于您回复的邮件正文是采用
    text/plain
    格式还是
    text/html
    格式

    由于
    text/html
    消息没有真正的约定,因此我将解释
    text/plain
    回复的约定

    通常,作为电子邮件客户端的作者,您要做的是以以下格式构造默认回复文本正文:

    On ${TIMESTAMP}, ${AUTHOR_NAME} wrote:
    
    后跟原始消息文本,每行前缀为
    “>”
    (大于空格)

    根据邮件客户端的不同,${TIMESTAMP}字符串的格式会有所不同,但它通常与原始邮件的
    Date
    头的格式大致相同

    当然,作者的名字取自
    from
    标题中解析的电子邮件地址


    如果您是自动生成邮件回复,可能最容易将回复文本前置到“引用”原始邮件正文文本(通常称为顶部帖子),但有些人在手动回复时会使用其他样式。

    可能我的问题问错了,我正在更新我的问题