2016-09-26 11 views
0

タイトルによれば、ASP.NetプロジェクトのC#コードビハインドを使用して、メッセージの体はすでに特定の情報で満たされています。Asp.Net C#、情報付きボディにデフォルトの電子メールクライアントを開く方法

私は直接に情報を含むメッセージを送信することができました:

private static bool EnvoieCourriel(string adrCourriel, string corps, string objet, string envoyeur, Attachment atache) 
{ 
    SmtpClient smtp = new SmtpClient(); 

    MailMessage msg = new MailMessage 
     { 
      From = new MailAddress(envoyeur), 
      Subject = objet, 
      Body = corps, 
      IsBodyHtml = true 
     }; 

    if (atache != null) 
     msg.Attachments.Add(atache); 

    try 
    { 
     msg.To.Add(adrCourriel); 
     smtp.Send(msg); 
    } 
    catch 
    { 
     return false; 
    } 

    return true; 
} 

私はまた、ユーザーのデフォルトの電子メールクライアントを開くことができました:

string email = op.CourrielOperateur1; 
ClientScript.RegisterStartupScript(this.GetType(), "mailto", "parent.location='mailto:" + email + "'", true); 

しかし、今...私は希望2番目の例のようにクライアントを開くのが好きですが、本文に既定のテキストが既に埋め込まれている必要があります。

答えて

4

C#ではこれを直接行うことはできません。あなたの場合は、この作業を得るためにJSと組み合わせてC#を使用する必要があります。

See this Answer

RFC 6068によって記載されるように、MAILTOを使用する件名と 体を指定することができ、ならびにCCフィールド。たとえば:

mailto:[email protected]?subject=Subject&body=message%20goes%20here 

あなたは で開くことを強制場合、ユーザーがリンクをクリックする必要はありませんJavaScriptの

window.location.href = 
"mailto:[email protected]?subject=Subject&body=message%20goes%20here"; 

はありませんがあることに注意してくださいブラウザ/メールの クライアントがmailtoリンクを処理する単一の標準的な方法(例えば、件名と本文フィールドは と警告を出す)。また、ポップアップと広告 ブロッカー、ウイルス対策ソフトウェアなどが自動的にmailtoリンクの強制オープンをブロックする危険性があります。ここ

+0

ClientScript.RegisterStartupScript(this.GetType()、 "MAILTO"、「parent.location = 'mailto: "+ email +"?subject = "+" rappel "+"&body = "+"メッセージ%20goes%20here "+"' "、true); –

+1

私はこれをバックエンドのC#で使っていますが、かなりうまくいきます –

0

実施例である: ASPページ:

<tr> 
<td> 
<asp:Label ID="lblEmail" runat="server" Text="Email: "></asp:Label> 
</td> 
<td> 
<asp:hyperlink id="lnkEmail1" runat="server" navigateurl="mailto:[email protected]?subject=MessageTitle&body;=MessageContent" target="" text="" xmlns:asp="#unknown"/> 
</td> 
</tr> 

C番号:

//call this in !ispostback in page_load 
    protected void BuildEmailAsLink() 
     { 
     //Email is different because we have to make the link clickable. 
     //navigateurl="mailto:[email protected]?subject=MessageTitle&body=MessageContent" 

     var email = lnkEmail1.Text; 

     //Only need to load the email address once on pageload. otherwise reuse it from the UI. 
     if (!string.IsNullOrEmpty(email) && (email.Length > 1) && email.Contains("@")) 
     { 
      //continue; 
     } 
     else 
     { 
      email = lnkEmail1.Text.Trim(); 
     } 

     if (string.IsNullOrEmpty(email) == false) 
     { 
      lnkEmail1.NavigateUrl = lnkEmail1.NavigateUrl.Replace("[email protected]", email); 
      lnkEmail1.NavigateUrl = lnkEmail1.NavigateUrl.Replace("MessageTitle", "Reaching Out"); 
      lnkEmail1.NavigateUrl = lnkEmail1.NavigateUrl.Replace("MessageContent", 
       string.IsNullOrEmpty(lblFirstName.Text.Trim()) == false 
        ? string.Format("Hi {0},", lblFirstName.Text.Trim()) 
        : "Hi,"); 

      lnkEmail1.Text = email; 
      lnkEmail1.Visible = true; 
     } 
    } 
関連する問題