2016-03-31 108 views
1

從一個多行文本區域複製文本到另一個文本區域,然後通過電子郵件發送所述文本時,我遇到了保留換行符的問題。沒有粘貼到多行文本框中的換行符

換行符看起來很好,直到打開Outlook電子郵件。當在電子郵件上右擊並查看源文件時,文本格式正確。

相關代碼:

Dim sb As New StringBuilder 
Dim linebreak = vbCrLf 
sb.Append("some data"& linebreak & linebreak) 
sb.Append("more data" & linebreak & linebreak) 
txtData.Text = sb.ToString() 

'Textbox html 
<asp:TextBox ID="txtCustInfo" TextMode="MultiLine" runat="server" Height="300px" Width="265px"></asp:TextBox> 

這是我粘貼到上述文本框:

<asp:TextBox ID="txtDescription" runat="server" Rows="6" TextMode="MultiLine" Width="500px"></asp:TextBox> 

這則獲取的Outlook電子郵件發送

Public Sub SendRequest(ByVal message As String, Optional ByVal SendToEmailAddress As String = "", Optional ByVal AddToSubjectLine As String = "", Optional ByVal attachment As String = "") 

    Dim msg As New EmailMessage 
    msg.Body = message 

    'Send message 

End Sub 

任何人遇到此之前?謝謝。

+1

如何嘗試使用Environment.NewLine()來代替。不知道VB是否有。 –

+0

我已經試過這個,我也添加wrap =「false」到正在接收文本的文本框。感謝您的回覆 –

+0

我可能是錯的,但我認爲你必須將linebreak定義爲一個字符串.......「Dim linebreak = vbCrLf」應該是「Dim linebreak as string = vbCrLf」 –

回答

1

這裏是一個可能的解決方案:

Public Sub SendRequest(ByVal message As String, Optional ByVal SendToEmailAddress As String = "", Optional ByVal AddToSubjectLine As String = "", Optional ByVal attachment As String = "") 

    Dim msg As New EmailMessage 
    msg.Body = message 
    msg.BodyFormat = MailFormat.Html; 'set the MailFormat 
    'Send message 

End Sub 

讓我知道這對你的作品。我與Outlook經歷了類似的事情,但使用了MailMessage

+1

我認爲將格式設置爲文本更有可能工作。 HTML會忽略換行符 - 所有的空格都被HTML –

+0

@StuartWhitehouse同等對待啊,我明白了,我的錯誤。將編輯 – terbubbs

+0

@StuartWhitehouse HM,但我猜默認情況下,BodyFormat已經是文本.. – terbubbs

相關問題