HttpHandler
ASP NET 4.0を使用しています。またはを介して電子メールを送信するための好ましい方法は何web service
ですか?ありがとう。
3 に答える
サーバー側のコードでメールを送信する必要があります。HttpHandlerまたはWebサービスを介してメールAPIを公開すると、システムはスパマーによってリレーサーバーとして使用されます。
はい、@peerによっても提案されているようにそれは悪い考えです。パスワードのリマインダー(機密性の高い操作)は安全に考えて実装する必要があります(パスワードのハッシュについては言及していません)
あなたが達成しようとしているのは、ユーザーがメールを送信した後、ページが更新されることなくメールが送信されたことをユーザーに知らせることだと思いますか?その場合は、Webサービスを介して、コードを処理するサーバー側のコードに電子メールを送信し、パスワードを電子メールアドレスに送信できます。次に、その関数にtrueまたはfalseを返して、「パスワードを含む電子メールが送信された」または「そのような電子メールがシステムに見つからない」ことをユーザーに通知できます。
アップデート
あなたが次のように持っていると言いますRemindPassword.aspx
。
<script>
$(document).ready(function () {
$.ajax({
type: "POST",
data: "{'email':'" + $('#txtEmail').val() + "'}",
url: 'RemindPassword.aspx/sendEmail',
contentType: "application/json; charset=utf-8",
success: function (msg) {
isok = JSON.parse(msg.d);
msgelem = $('#results');
if (isok == true) {
msgelem.html('your password has been sent to your email.')
} else {
msgelem.html('this email address does not exist in our system.')
}
}
})
};
});
</script>
<asp:TextBox ID="txtEmail" runat="server" />
<asp:Button ID="btnSubmit" runat="server" Text="Send password.."/>
<span id="results"></span>
RemindPassword.aspx.vbで:
System.Web.Servicesをインポートします
<WebMethod()> _
Public Shared Function SendMail(email As String) As Boolean
' write code here to check if email exists.
' if it does, run code (or another function) to send the password.
' then return true
' if the email doesnt exist, then return false.
End Sub
メッセージの転送にWebサービスを使用できますが、クレデンシャルを渡すことはありません。javascriptからwebserciceを呼び出すことができます。コードが必要な場合は、私がお手伝いします。
body、cc、bcc、subjectは、javascriptを使用してこれらすべての詳細をwebmethodに渡すことができます。他のすべての資格情報は、サーバーコード内に保持する必要があります。
function SendMail(txtTo, txtFrom, txtCC, txtBCC, txtSubject, txtMessage)
{
// call server side method
PageMethods.sendmail(txtTo, txtFrom, txtCC, txtBCC, txtSubject, txtMessage);
}
// set the destination textbox value with the ContactName
function CallSuccess(res)
{
alert(res) ;
}
// alert message on some failure
function CallFailed(res)
{
alert(res.get_message());
}
サーバー上
public static void SendMail(string txtTo, string txtFrom, string txtCC, string txtBCC, string txtSubject, string txtMessage)
{
try
{
//Creating the Mail Message object.
MailMessage Email=new MailMessage();
//Storing the To value in the object reference.
Email.To=txtTo;
//Storing the From value in the object reference.
Email.From=txtFrom;
//Storing the CC value in the object reference.
Email.Cc=txtCC;
//Storing the BCC value in the object reference.
Email.Bcc=txtBCC;
//Storing the Subject value in the object reference.
Email.Subject=txtSubject;
//Specifies the email body.
Email.Body=txtMessage;
//Setting priority to the mail as high,low,or normal
Email.Priority=MailPriority.High;
//Formatting the mail as html or text.
Email.BodyFormat=MailFormat.Text;
//Checking whether the attachment is needed or not.
//if(rbtnAttach)
//{
// //Adding attachment to the mail.
// Email.Attachments.Add(
// new MailAttachment(FileBrowse));
//}
//specifying the real SMTP Mail Server.
SmtpMail.SmtpServer.Insert(0,"127.0.0.1");
SmtpMail.Send(Email);//Sending the mail.
//calling the reset method to erase all the data
//after sending the mail.
}
//Catching Exception
catch(Exception exc)
{
}
}
詳細については、以下を参照してください。
http://www.dotnetcurry.com/ShowArticle.aspx?ID=109 http://www.codeproject.com/KB/aspnet/Techblaster/Techblaster_demo.zip