1

こんにちは、私がしばらく直面している問題です。理由はわかりませんが、ローカルホストにWebアプリケーションをデプロイした後は、電子メールクライアントを開くことができません。ただし、すべてがVisualStudioのデバッグモードで機能します。

よろしくお願いします;-)

これが私の簡単なコードです:

try
{
    string dataBaseName = string.Empty;
    string serverName = ttbx_ServerName.Text;
    //get item from radcombobox to make the body message
    foreach (RadComboBoxItem item in cbx_DbName.Items)
    {
        if (item.Checked)
        {
            dataBaseName += "[#] : " + item.Text + "\n";
        }
    }

    string Body = "Last name: " + ttbx_YourName.Text + "\nFirst name: " + ttbx_YourFirstName.Text + "\nServer Name: " + serverName + "\nDataBase(s) name: \n" + dataBaseName + "\nSID: " + getMd5Hash(ttbx_sidSqlServer.Text);
    string command = "mailto:register@arms.ch?subject=A.R.M.S%20Customer%20Key%20Request&body=" + Body.Replace("\n", "%0D%0A");
    Process.Start(command);
}
catch (Exception)
{
    lbl_Error.ForeColor = System.Drawing.Color.Red;
    lbl_Error.Text = "No smtp mail client found , please send manually the informations";
    lbl_Error.Visible = true;
}
4

2 に答える 2

1

展開されると、Process.Startは、IISプロセスが調整しているアカウントのユーザーアカウントで電子メールクライアントを実行しようとします。これは、ログインしているユーザーアカウントと同じではない可能性が高いため、電子メールクライアントが実行されていることはわかりません。

正直なところ、なぜWebアプリから電子メールクライアントを実行しようとしているのか完全にはわかりません。これがどのように機能するかを確認するのに苦労しています。

Webサイトのユーザーに電子メールクライアントの実行を表示させる場合は、クライアントの実際のWebページにmailtoHTML要素が必要です。

asp.netを使用すると、これは次のようなコントロールになる可能性があります

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl = "" Text = ""></asp:HyperLink>

次に、コードビハインドで、PageLoadで、必要な電子メールアドレス、件名、本文を使用してNavigateUrlを設定できます。

于 2012-11-15T09:40:08.933 に答える
1

プロセス(Process.Start)は、Webインターフェイスを介して実行されるため、クライアントで実行することはできません。ローカルコンピューターでプロセスを開始するため、デバッグでは機能しますが、「実際の」クライアントでは機能しません。

代わりに、次のようにブラウザにmailtoリンクを表示する必要があります。

<a href="mailto:admin@domain.com?subject=" + subjectFromCode + " id="email-link">Send Email</a>

編集

プログラムでこれを実行したい場合は、jqueryを介して実行できます:

$(document).ready(function(){
   $("#email-link").click();
});
于 2012-11-15T10:04:56.820 に答える