2
string from = "myemail@gmail.com";
string to = "other.mail.123@gmail.com";

System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
mail.To.Add(to);
mail.From = new System.Net.Mail.MailAddress(from, "One Ghost", System.Text.Encoding.UTF8);
mail.Subject = "This is a test mail";
mail.SubjectEncoding = System.Text.Encoding.UTF8;
mail.Body = "This is Email Body Text";
mail.BodyEncoding = System.Text.Encoding.UTF8;
mail.IsBodyHtml = true;
mail.Priority = System.Net.Mail.MailPriority.High;
System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();

client.Credentials = new System.Net.NetworkCredential(from, "XXXXX");
client.Port = 587; 
client.Host = "smtp.gmail.com";
client.EnableSsl = true; 
try
{
    client.Send(mail);
}
catch (Exception ex)
{
    Exception ex2 = ex;
    string errorMessage = string.Empty;

    HttpContext.Current.Response.Write("errroorr " + ex.Message.ToString());
}

client.send() メソッドで例外をスローします。メッセージの送信に失敗したと表示されます。問題の内部例外はこれです

内部例外は言う System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 74.125.141.109:587 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.Sockets.Socket.InternalConnect(EndPoint remoteEP) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Int32 timeout, Exception& exception) --- End of inner exception stack trace --- at System.Net.ServicePoint.GetConnection(PooledStream PooledStream, Object owner, Boolean async, IPAddress& address, Socket& abortSocket, Socket& abortSocket6, Int32 timeout) at System.Net.PooledStream.Activate(Object owningObject, Boolean async, Int32 timeout, GeneralAsyncDelegate asyncCallback) at System.Net.PooledStream.Activate(Object owningObject, GeneralAsyncDelegate asyncCallback) at System.Net.ConnectionPool.GetConnection(Object owningObject, GeneralAsyncDelegate asyncCallback, Int32 creationTimeout) at System.Net.Mail.SmtpConnection.GetConnection(String host, Int32 port) at System.Net.Mail.SmtpTransport.GetConnection(String host, Int32 port) at System.Net.Mail.SmtpClient.GetConnection() at System.Net.Mail.SmtpClient.Send(MailMessage message)

4

3 に答える 3

0

これらの2つの設定を追加してみてください

client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;

また、サーバーに電子メールの送信要求をブロックしているアンチウイルスがあるかどうかを確認します

于 2013-02-13T10:24:57.833 に答える
0

回答として投稿して申し訳ありません。元の投稿に返信するつもりでした。

SMTP には資格情報が必要です。提供されている資格情報が見つかりませんでした。telnetサーバーへの接続を試み ます。ポートにアクセスでき、SMTP 資格情報を持っている場合は、コマンド ライン自体から電子メールを送信できます。

これを試してみて、それがうまくいくかどうか教えてください.

于 2013-02-13T10:46:56.177 に答える
0

以下のように使用できます

public static void SendMail(string Message, string Subject)
    {
        bool retVal;
        SmtpClient smtpClient = new SmtpClient();
        MailMessage message = new MailMessage();

        MailAddress fromAddres = new MailAddress(FromMail, "Test");
        message.From = fromAddres;
        // To address collection of MailAddress
        message.To.Add(ToMail);
        message.Subject = Subject;
        smtpClient.Host = HotName;
        smtpClient.UseDefaultCredentials = true;
        smtpClient.Credentials = new System.Net.NetworkCredential(SmtpUser, SmtpPassword);
        message.IsBodyHtml = true;
        // Message body content
        message.Body = Message;    

        smtpClient.Send(message);

        retVal = true;
        message.Dispose();
    }

私はこれがあなたを助けると思う........

于 2013-02-13T10:46:22.420 に答える