2014-09-26 112 views
0

我有一個HTML聯繫表格,我正嘗試使用Mandrill API發送電子郵件。如果我用我的電子郵件填寫表格的電子郵件部分,表單只會向我發送電子郵件。但是,如果我輸入類似「[email protected]」的內容,則不會發送到我的Gmail帳戶。Mandrill:無法通過表格發送郵件

我在做什麼錯?一整天都陷在這個問題上。

這裏是我的HTML表單:

<!-- Form Name --> 

<!-- Text input--> 
<div class="form-group"> 
    <label class="col-md-4 control-label" for="name">Name</label> 
    <div class="col-md-5"> 
    <input id="name" name="name" type="text" placeholder="Enter your full name here" class="form-control input-md" required=""> 

    </div> 
</div> 

<!-- Text input--> 
<div class="form-group"> 
    <label class="col-md-4 control-label" for="email">Email</label> 
    <div class="col-md-5"> 
    <input id="email" name="email" type="text" placeholder="Enter your email address here" class="form-control input-md" required=""> 

    </div> 
</div> 

<!-- Textarea --> 
<div class="form-group"> 
    <label class="col-md-4 control-label" for="msg">Message</label> 
    <div class="col-md-4">      
    <textarea class="form-control" id="msg" name="msg" cols="6" rows="6"></textarea> 
    </div> 
</div> 

<!-- Button --> 
<div class="form-group"> 
    <label class="col-md-4 control-label" for="submit"></label> 
    <div class="col-md-4"> 
    <button id="submit" name="submit" class="btn btn-primary" formmethod="POST">Send Message</button> 
    </div> 
</div> 

</fieldset> 
</form> 

這裏是我的contact.js

jQuery(function($) 
{ 
    $("#contact_form").submit(function() 
    { 
     var email = $("#email").val(); // get email field value 
     var name = $("#name").val(); // get name field value 
     var msg = $("#msg").val(); // get message field value 
     $.ajax(
     { 
      type: "POST", 
      url: "https://mandrillapp.com/api/1.0/messages/send.json", 
      data: { 
       'key': 'API Key', 
       'message': { 
        'from_email': email, 
        'from_name': name, 

        'subject': 'Website Contact Form', 
        'text': msg, 
        'to': [ 
        { 
         'email': '[email protected]', 
         'name': 'Taimur K Naziri', 
         'type': 'to' 
        }] 
       } 
      } 
     }) 
     .done(function(response) { 
      alert('Your message has been sent. Thank you!'); // show success message 
      $("#name").val(''); // reset field after successful submission 
      $("#email").val(''); // reset field after successful submission 
      $("#msg").val(''); // reset field after successful submission 
     }) 
     .fail(function(response) { 
      alert('Error sending message.'); 
     }); 
     return false; // prevent page refresh 
    }); 
}); 
+0

澄清:您是否說這段代碼適用於您輸入表單(您的電子郵件)的_some_值,但不適用於其他人(gmail電子郵件地址)? – 2014-09-26 20:59:39

+0

它工作,如果我輸入我的電子郵件(Gmail地址),但它不工作,如果我輸入另一個人的電子郵件(Gmail或雅虎地址)。所以如果我用我的電子郵件輸入任何名字,郵件將發送給我。反對用戶輸入他們的姓名,他們的電子郵件和他們應該發送到我的Gmail的消息。這是我想要做的。 – scrippyfingers 2014-09-26 21:18:42

+0

它是如何失敗?您是否從Mandrill API獲得錯誤?或者API調用是否成功,然後發生其他事情? – Kaitlin 2014-09-28 03:11:32

回答

0

看起來好像這可能是一個山魈限制。 您應該使用回覆標題而不是更改發件人地址。

0

它工作正常,但當表單提交@ yahoo.com電子郵件地址時,它不起作用。但是還沒有弄清楚爲什麼。

+0

這是因爲雅虎,美國在線和Zendesk拒絕從他們的電子郵件地址發送的電子郵件,這些電子郵件地址並非源自他們自己的服務器。用技術術語來說,他們將他們的dmarc政策設置爲p =拒絕 – 2015-09-16 14:37:37