如何与发送AJAX接触形式给收件人的电子邮件地址

问题描述:

我目前得到这个:它去一个URL如何与发送AJAX接触形式给收件人的电子邮件地址

$.ajax({ 
    url: '/some/url', 
    dataType: 'json', 
    type: 'POST', 
    data: formData, 
    success: function(data) { 
    if (window.confirm('Thank you for your message. Can I erase the form?')) { 
    document.querySelector('.form-input').val(''); 
    } 
}, 
error: function(xhr, status, err) { 
    console.error(status, err.toString()); 
    alert('There was some problem with sending your message.'); 
} 
}); 

相反,我能怎样改变直接发送到特定的电子邮件地址?我正在使用这个联系表单和我创建的React应用程序。

+0

能否请您发表您的后端代码,其中URL指向? – KondukterCRO

+0

它并没有指出任何东西,不知道什么是用React做到这一点的最佳方式。我只是希望它发送到一个电子邮件地址。 – Sadie

+0

首先你使用的jquey ajax不是反应的最佳实践。 其次,我想告诉你如何发送它与你的后端,所以你会做一个url的url请求,当url被“执行”的邮件将被发送。 – KondukterCRO

您需要打开电子邮件对话是这样的:

 window.location.href = `mailto:?&subject=your 
     subject&body=${...your post data items}`; 
+0

我在哪里可以在上面的代码?对不起还是很新的。不确定最好的方式来做到这一点。 – Sadie

+0

@Sadie在那里你需要发送电子邮件,如果你不会在浏览器中做到这一点 –

+0

对不起,仍然困惑。 @Artem – Sadie

等反应过来组件,基于类。

class Foo extends Component { 
    popupQuestion() { 
     // implement method 
    } 
    sendEmail() =() => { 
     axios.post('/some/url', { 
      subject: 'mail', 
      to: '[email protected]', 
      body: 'something', 
      name: 'name' 
     }) 
     .then(function (response) { 
      popupQuestion(); 
     }) 
     .catch(function (error) { 
      console.log(error); 
      return 'Error occurred. Please refresh page and try again.'; 
     }); 
    } 
    render() { 
     return(
      <form onSubmit={this.sendEmail}> 
       // ... 
      </form> 
     ); 
    } 
} 

和PHP的方法,将一些被执行/ URL

public function sendEmailAction(): bool 
{ 
    $request = // get request; 
    $subject = $request->get('subject'); 
    $to = $request->get('to'); 
    $body = $request->get('body'); 
    $name = $request->get('name'); 
    $transport = (new Swift_SmtpTransport('smtp.example.org', 25)) 
     ->setUsername('your username') 
     ->setPassword('your password'); 
    $mailer = new Swift_Mailer($transport); 
    $message = (new Swift_Message($subject)) 
     ->setFrom(['[email protected]' => 'me']) 
     ->setTo([$to => $name]) 
     ->setBody($body); 
    $sent = $mailer->send($message); 
    return $sent ? true : false; 
}