本文介绍了换行符不会出现在Notes中的邮件正文中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是Notes新手.我正在尝试使用带有附件的Lotus Notes从我的应用程序发送邮件,邮件可以正常运行,附件也可以运行,但是问题在于正文内容,正文失去了格式,并呈直线形

I am new to Notes.I am trying to send a mail from my application using Lotus Notes with an attachment,mail goes properly and attachment also goes but the problem is with the body content,the body looses its format and comes in a straight line

我期望如下

Dear Sir,
please check the attachment.


Regards,
NewConcept Infotech Pvt.Ltd.,

但是它是这样的

Dear Sir,please check the attachment.Regards,NewConcept Infotech Pvt.Ltd.,

我尝试了很多搜索,但没有用.

i tried everything googled a lot but no use.

这是我的代码

 public bool Email(string dbDirectory, string DataBase_Name, string Initialize_Pwd, string From, string To, string CC, string Bcc, string Subject, string body, string FileName, string LogFilePath)
        {
            bool msg = false;
            dynamic EMailReplyTo = ConfigurationSettings.AppSettings["EMailReplyTo"];
            NotesSession objNotesSession = new NotesSession();
            NotesDatabase ndb = null;
            NotesDocument ndoc = null;
            NotesDbDirectory ndbD = null;
            NotesStream LNStream;
            NotesMIMEEntity LNBody;
            object objAttach;
            try
            {
                ////--------------------Lotus Notes Connectivity-------------------------///
                List<string> lstOutPutEmail = new List<string>();
                lstOutPutEmail.Add(DataBase_Name);
                lstOutPutEmail.Add(Initialize_Pwd);

                objNotesSession.Initialize(lstOutPutEmail[1].ToString());
                ////  objNotesSession object Initialized

                ndbD = objNotesSession.GetDbDirectory(dbDirectory);

                ndb = objNotesSession.GetDatabase(dbDirectory, DataBase_Name, false);

                //If the database is not already open then open it.
                if (!ndb.IsOpen)
                {
                    ndb.Open();
                }

                if (ndb != null)
                {
                    ndoc = ndb.CreateDocument();
                    LNStream = objNotesSession.CreateStream();
                    LNBody = ndoc.CreateMIMEEntity();
                    //   ndoc.ReplaceItemValue("SendBy", From);
                    ndoc.ReplaceItemValue("Form", "Memo");
                    ndoc.ReplaceItemValue("From", From);
                    ndoc.ReplaceItemValue("Principal", From);
                    ndoc.ReplaceItemValue("SendTo", To.Split(','));
                    if (CC != null)
                    {
                        if (CC != "")
                        {
                            ndoc.ReplaceItemValue("CopyTo", CC.Split(','));
                        }
                    }
                    if (Bcc != null)
                    {
                        if (Bcc != "")
                        {
                            ndoc.ReplaceItemValue("BlindCopyTo", Bcc.Split(','));
                        }
                    }
                    ndoc.ReplaceItemValue("Subject", Subject);
                    //

                    NotesRichTextItem objMailRTF = ndoc.CreateRichTextItem("Body");



                    ndoc.ReplaceItemValue("Body", body);



                    ndoc.SaveMessageOnSend = true;
                    if (FileName != "")
                    {
                        objAttach = objMailRTF.EmbedObject(Domino.EMBED_TYPE.EMBED_ATTACHMENT, "", FileName, "Attachment");
                    }
                    ndoc.Send(false);
                    ndbD = null;
                    objNotesSession = null;
                    ndb = null;
                    ndoc = null;
                    gl.runLogfile("Mail Send Successfuly To : " + To, LogFilePath);
                }
                msg = true;
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error On sending Mail To : " + To);
                gl.runLogfile("Error On sending Mail To : " + To, LogFilePath);
                gl.runLogfile(ex.Message, LogFilePath);
                msg = false;
            }
            finally
            {

            }
            return msg;
        }

推荐答案

0. MIME

如果使用的是MIME,则无需创建Body字段.但是您需要使用<br>而不是newline字符.

0. MIME

If you are using MIME then you don't need to create the Body field. But you need to use <br> instead of newline characters.

//Remove this from your code:
//NotesRichTextItem objMailRTF = ndoc.CreateRichTextItem("Body");
//ndoc.ReplaceItemValue("Body", body);

objNotesSession.ConvertMIME = false;

LNStream.WriteText(body.Replace(Environment.NewLine, "<br>"));
LNBody.SetContentFromText(stream, "text/plain;charset=UTF-8", 1728);

ndoc.SaveMessageOnSend = true;

if (FileName != "")
{
    //objAttach = objMailRTF.EmbedObject(Domino.EMBED_TYPE.EMBED_ATTACHMENT, "", FileName, "Attachment");

    var child = LNBody.CreateChildEntity();
    var header = child.CreateHeader("Content-Disposition");
    header.SetHeaderValAndParams(string.Format("attachment; filename=\"{0}\""), Path.GetFileName(FileName));

    LNStream = objNotesSession.CreateStream();
    LNStream.Open(FileName, "binary");
    child.SetContentFromBytes(LNStream, "application/octet-stream", 1730);
    child.EncodeContent(1727);

    ndoc.CloseMIMEEntities(True, "Body");
}

1.没有MIME

如果您不想使用MIME,则必须使用AppendText方法而不是ReplaceItemValue方法:

1. No MIME

If you don't want to use MIME then you must use AppendText method instead of ReplaceItemValue method:

NotesRichTextItem objMailRTF = ndoc.CreateRichTextItem("Body");
//ndoc.ReplaceItemValue("Body", body);
objMailRTF.AppendText(body);

ndoc.SaveMessageOnSend = true;
if (FileName != "")
{
    objMailRTF = ndoc.CreateRichTextItem("Attachment");
    objAttach = objMailRTF.EmbedObject(Domino.EMBED_TYPE.EMBED_ATTACHMENT, "", FileName, "Attachment");
}

这篇关于换行符不会出现在Notes中的邮件正文中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-01 22:58