[ad_1]
題して。 メンバーに添付ファイル付きのメールを送信できるシステムを開発しています。 「このメールはシステムによって自動的に送信されます。返信しないでください」という内容のメールのように、送信者のメール アドレスが仮想アドレスである可能性があるため、受信者が受信したメールに返信できないようにしたいです。
この機能を構築したいのですが、サードパーティのコンポーネントがないと難しいことがわかりました。また、サードパーティのコンポーネントは高価です。 いくつかのサンプルコードを試してみましたが、そのうちの1つは次のようなものです。
public string SendEMail(string From,string To,string Subject,string Content) { try { System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(); msg.To.Add(To); msg.From = new MailAddress(From, From, System.Text.Encoding.UTF8); msg.Subject = Subject; msg.SubjectEncoding = System.Text.Encoding.UTF8; msg.Body = Content; msg.BodyEncoding = System.Text.Encoding.UTF8; msg.IsBodyHtml = false; msg.Priority = MailPriority.Normal; SmtpClient client = new SmtpClient(); //client.Credentials = new System.Net.NetworkCredential(SenderAddress, SenderPassword); client.Host = "localhost"; //client.EnableSsl = true; client.Send(msg); return string.Empty; } catch (Exception ex) { return "Exception:" + ex.Message + "Stacktrace:" + ex.StackTrace; } }
しかし、「電子メールの送信に失敗しました」というメッセージが表示されました。 このコードの実行中に例外メッセージが表示されます。 どうすれば入手できますか?
解決策 1
いくつか問題があります。 まず、自分でセットアップしない限り、使用しているメール サーバーを制御することはできません。 これは、電子メールの送信に使用しているメール サーバー上で設定されたポリシーに左右されることを意味します。 いいえ、それがなければ何もできません。
これは、メール サーバーの所有者が、送信者アドレスなしでは電子メールを送信または転送しないと指定した場合は、送信者アドレスを入力する必要があることを意味します。所有者が、電子メール アドレスが電子メールを送信しているアカウントと一致しなければならないと指定した場合、送信者フィールドには電子メール アドレスを入力する必要があります。
私の職場では、送信者アドレスを入力せずに送信したり電子メールを送信したりすることはできません。有効なアカウントである必要はありません。 それを埋めるだけでいいのです。
メールを送信しているサーバーにメールを受信したので、これらの問題は解決できません。 一部のサーバーでは、送信者が入力されていないと電子メールが配信されません。そのため、フィールドを空白のままにしてもすべての受信者に機能するとは限りません。
希望どおりのことを行うための最良の方法は、「noreply@yourdomain.com」などのメール アドレス (通常は存在する必要さえありません) を作成することです。 ユーザーがメールに返信した場合、それはユーザーの問題であり、あなたの問題ではありません。 電子メール アカウントが存在しない場合、電子メールは配信できません。 最悪の場合、誰も監視していないアカウントの受信箱に保存され、最終的にはサーバーによって削除されます。
[ad_2]
コメント