C# SMTP回复方法
我正在创建一个WebMail客户端,但我有一个问题。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
如果只使用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
标题中解析的电子邮件地址
如果您是自动生成邮件回复,可能最容易将回复文本前置到“引用”原始邮件正文文本(通常称为顶部帖子),但有些人在手动回复时会使用其他样式。可能我的问题问错了,我正在更新我的问题