ローカルホストからOK働くコントローラのコードです:私はそれが唯一の本番サーバ上で失敗したと述べたようは、Googleからの電子メールを送信すると、本番サーバー上で失敗しますが、ここで
[HttpPost, ValidateInput(true)]
public ActionResult Contact(ContactForm model)
{
if (!ModelState.IsValid)
{
return Json("error");
}
else
{
WebMail.SmtpServer = "smtp.gmail.com";
WebMail.UserName = //email here
WebMail.Password = //password here
WebMail.EnableSsl = true;
string message = model.Name + " " + model.Telephone + " " + model.Email + " " + model.Address + " " + model.City + " " + model.ZipCode;
try
{
WebMail.Send("[email protected]", "philaslim.com/info email", message, model.Email);
return Json("thanks");
}
catch (Exception ex)
{
return Json(ex.Message.ToString());
}
}
。返された例外メッセージは "Failure sending sending mail"です。何か案は?
EDIT:のInnerException:
System.Net.WebException:リモートサーバーに接続できません---> System.Net.Sockets.SocketException:接続されているパーティが正しく応答しなかったため、接続の試行が失敗しました接続されたホストがSystem.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot、SocketAddress socketAddress)の74.125.53.108:25(System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure、ソケットs4、ソケットs6、ソケット&ソケット、IPAddress &アドレス、ConnectSocketState状態、IAsyncResult asyncResult、Int32タイムアウト、例外&例外)---内部eの終了xceptionスタックトレース--- System.Net.ServicePoint.GetConnection(PooledStream PooledStream、Object owner、Boolean async、IPAddress &アドレス、ソケット& abortSocket、ソケット& abortSocket6、Int32タイムアウト)at System.Net.PooledStream.Activate(Object owningObject 、System.Net.ConnectionPool.GetConnection(Object owningObject、GeneralAsyncDelegate asyncCallback、Int32 creationTimeout)のSystem.Net.PooledStream.Activate(Object owningObject、GeneralAsyncDelegate asyncCallback)のSystem.Net.Mailでのブール値の非同期、Int32タイムアウト、 SmtpConnection.GetConnection(ServicePoint servicePoint)at System.Net.Mail.SmtpTransport.GetConnection(ServicePoint servicePoint)System.Net.Mail.SmtpClient.GetConnection()System.Net.Mail.SmtpClient.Send(MailMessageメッセージ)
InnerExceptionには何かがありますか? – Lester
編集してください –
プロダクションサーバーでインターネットにアクセスするにはプロキシが必要ですか? – hawkke