0

誰かが質問を投稿した後、自分にメールを送信しようとしています。メールを受信して​​いますが、それは私が必要としているものではありません。差出人のメールアドレスは、質問をした人ではなく、私自身のものです。

自分宛てにメールを送信することはできますか(質問をしている人のSMTPホスト、ユーザー名、またはパスワードがわかりません)。

必要に応じてコードを追加します。

QuestionsController.cs

MailMessage msg = new MailMessage();
msg.From = new MailAddress(question.Author + "<" + question.MailAuthor + ">");
msg.To.Add("myGmailAddress");
msg.Subject = question.Title;
msg.Body = question.Message;
msg.Sender = new MailAddress(question.MailAuthor);
SmtpClient client = new SmtpClient();
client.Send(msg);

私のコードには最初にmsg.senderが含まれていませんでしたが、送信者を追加して試しましたが、それも役に立ちませんでした。

Web.config(ビューフォルダーの外)

<system.net>
    <mailSettings>
      <smtp from="myGmailAddress">
        <network 
          host="smtp.gmail.com" 
          password="myPassword" 
          userName="myGmailAddress" 
          port="587" 
          enableSsl="true" 
          defaultCredentials="false" />
      </smtp>
    </mailSettings>
</system.net>

また、from部分とdefaultCredentials="false"なしで試してみました。

コードをデバッグすると、msgのfromが私のgmailアドレスで始まり、msg.Fromの部分を通過すると変化することがわかります。しかし、私が自分のメールに行くとき、私はこれを受け取ります: ここに画像の説明を入力してください

4

2 に答える 2

0

sylonのコメントのおかげで、新しい質問をその人に知らせるために、返信なしのアドレスを作成することにしました。

于 2013-04-10T08:50:49.353 に答える
0

私は彼らに同じ問題を抱えていて、noreplyなしでそれを修正しました、私はあなたのホストサーバーがあなたがこれをすることを試みることができるGmailのようにそれで問題がないと思います:
1。あなたのホストサーバーを通して電子メールを送ってください(私はWeb.configを使いませんでした)::

 [HttpPost]
 public ActionResult SendMail(Question question)
  {
    string retValue = "There was an error submitting the form, please try again later.";
    if (!ModelState.IsValid)
        {
           return Content(retValue);
        }

    if (ModelState.IsValid)
        {                    
           using (var client = new SmtpClient
           {                  

              host="mail.yourDomain.com" //mail.yourDomain.be,if your using belgium,
              Port = 587,
              EnableSsl = true,
              UseDefaultCredentials=false,
              Credentials = new NetworkCredential("yourDomainEmailAddress","PasswordOfDomainMail"), 
                        DeliveryMethod = SmtpDeliveryMethod.Network})
         {
              var mail = new MailMessage();

              mail.To.Add("yourDomainEmailAddress"); 
              mail.From = new MailAddress(question.MailAuthor, question.Author);
              mail.Subject = String.Format(question.Title);
              msg.Body = question.Message;                       
              mail.ReplyToList.Add(yourDomainEmailAddress);
            try 
                {           
                 client.Send(mail);
                     retValue = "Your Request for Contact was submitted successfully. We will contact you shortly.";
                }
                        catch (Exception)
                        {

                            throw;
                        }
                    }
                }
                return Content(retValue);
            }
  1. ホストサーバーで、ドメインのメールアドレスをGmailアドレスに転送します。
  2. Gmailアカウントで、[設定] =>[アカウント] = >[ドメインのメールアドレスを追加してメールを送信]をクリックします。確認コードを入力するよう求められます。これを閉じると、gemailに戻り、リンクをクリックして完了します。
于 2014-02-04T20:49:46.150 に答える