首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >注意事项中未进入邮件体的newline

注意事项中未进入邮件体的newline
EN

Stack Overflow用户
提问于 2014-11-25 11:04:49
回答 3查看 1.6K关注 0票数 1

我对笔记很陌生。我试图使用带有附件的looses从我的应用程序中发送邮件,邮件运行正常,附件也在进行,但问题是身体内容,身体放松了格式,以直线形式出现。

我希望如下所示

代码语言:javascript
复制
Dear Sir,
please check the attachment.


Regards,
NewConcept Infotech Pvt.Ltd.,

但它是这样来的

代码语言:javascript
复制
Dear Sir,please check the attachment.Regards,NewConcept Infotech Pvt.Ltd.,

我试过所有的谷歌搜索了很多,但没有用。

这是我的密码

代码语言:javascript
复制
 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;
        }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-11-25 12:05:49

0。哑剧

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

代码语言:javascript
复制
//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,则必须使用AppendText方法而不是ReplaceItemValue方法:

代码语言:javascript
复制
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");
}
票数 2
EN

Stack Overflow用户

发布于 2014-11-25 12:05:58

使用RichTextItem的方法AddNewLine()确实向Body字段添加了新行

代码语言:javascript
复制
NotesRichTextItem objMailRTF = ndoc.CreateRichTextItem("Body");
objMailRTF.AppendText("Dear Sir,");
objMailRTF.AddNewLine(1);
objMailRTF.AppendText("please check the attachment.");
objMailRTF.AddNewLine(2);
...

删除代码行ndoc.ReplaceItemValue("Body", body);,否则将无法工作。

票数 5
EN

Stack Overflow用户

发布于 2014-11-25 11:29:54

在ndoc.body中,必须将换行符编码为"chr$(13)chr$(10)“。在java (char)13(char)10或\r\n中。

您需要在字符串体中替换,得到参数,所有换行符都会出现(可能是'\n‘,但是看看它是如何在字符串中编码到(char)13(char)10的。

尝试:

代码语言:javascript
复制
body = body.replaceAll("\n", "\r\n");
ndoc.ReplaceItemValue("Body", body);

如果它只对1不起作用,请尝试will \。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27124953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档