问题描述
我是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中的邮件正文中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!