私はASP.NET MVC
で初心者です。ウェブアプリケーションでsmtp server
とajax
を使用して電子メールを取得しようとしています。ユーザーがボタンをクリックすると、私のコードは、希望のIDに送信される電子メールを生成します。私は正常にすべての値をデバッグするコードを取得しています。しかし、私はそこにメールを受け取ることができません。しかし、私はまた成功ブラウザからのマッサージを取得しています。しかし、私の望ましいアカウントには、そこに電子メールがありません。asp.net mvcでsmtpとajaxでメールを送信
Index.cshtml
<div>
<a class="btn btn-primary btn-block btn-lg" onclick="SendEmail()" >Click to send Email</a>
</div>
<script>
var SendEmail = function() {
$.ajax({
type: "Post",
url: "/Feedbacks/SendMailToUser",
success: function (data) {
alert("Success");
}
})
}
</script>
FeedbacksController.cs
public JsonResult SendMailToUser() {
bool result = false;
result = SendEmail("[email protected]", "Test", "<p>Hi abc,<br/>This message is for testing purpose. So don't be upset.<br/>Kind Regards,<br/>abc</p>");
return Json(result, JsonRequestBehavior.AllowGet);
}
public bool SendEmail(string toEmail, string subject, string emailBody) {
try
{
string senderEmail = System.Configuration.ConfigurationManager.AppSettings["SenderEmail"].ToString();
string senderPassword = System.Configuration.ConfigurationManager.AppSettings["SenderPassword"].ToString();
SmtpClient client = new SmtpClient("smtp.gmail.com", 578);
client.EnableSsl = true;
client.Timeout = 100000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(senderEmail, senderPassword);
MailMessage mailMessage = new MailMessage(senderEmail, toEmail, subject, emailBody);
mailMessage.IsBodyHtml = true;
mailMessage.BodyEncoding = UTF8Encoding.UTF8;
client.Send(mailMessage);
return true;
}
catch (Exception ex) {
return false;
}
}
}
のWeb.config
<appSettings>
<add key="SenderEmail" value="[email protected]" />
<add key="SenderPassword" value="********" />
</appSettings>
ajaxコールバックの 'data'の値は何ですか?それは真実か偽ですか? falseの場合は、コードのどの部分が実行されているかが分かります。 – Shyju
ポート番号を変更するだけでなく、enableSSLをfalseに変更する –
安全でないメールを送信する場合にのみ、@UbiquitousDevelopers: – ADyson