[英]How do I email an invoice using JavaScript?
我正在開發一個包含商店的網站,商店是用 JavaScript (VanillaCartJS) 編碼的,我讓用戶使用 PayPal 付款。 我希望 PayPal 會告訴用戶他們訂購了什么商品以及訂購了多少,但我只能通過它向他們收取正確的金額。
JS 文件名為cart.js,將商品添加到購物車的函數是:
function insertItemToDOM(product) {
cartDOM.insertAdjacentHTML('beforeend', `
<div class="cart__item">
<img class="cart__item__image" src="${product.image}" alt="${product.name}">
<h3 class="cart__item__name">${product.name}</h3>
<h3 class="cart__item__price">${product.price}</h3>
<button class="btn btn--primary btn--small${(product.quantity === 1 ? ' btn--danger' : '')}" data-action="DECREASE_ITEM">−</button>
<h3 class="cart__item__quantity">${product.quantity}</h3>
<button class="btn btn--primary btn--small" data-action="INCREASE_ITEM">+</button>
<button class="btn btn--danger btn--small" data-action="REMOVE_ITEM">×</button>
</div>
`);
addCartFooter();
}
我還將購物車保存到本地存儲,我想如果我可以保存它,我也可以通過電子郵件將其發送給客戶,此代碼以及函數“countCartTotal()”:
function countCartTotal() {
let cartTotal = 0;
cart.forEach(cartItem => cartTotal += cartItem.quantity * cartItem.price);
document.querySelector('[data-action="CHECKOUT"]').innerText = `Pay $${cartTotal}`;
return cartTotal;
}
function saveCart() {
localStorage.setItem('cart', JSON.stringify(cart));
countCartTotal();
}
我有一個使用 PHP 郵件服務的忘記密碼系統,是否可以在這封電子郵件中運行 JS 代碼,如果可以,我該怎么做?
您可以使用以下幾個選項:
使用像 authsmtp 這樣的 smtp 服務器發送電子郵件(付費)
使用像 mailgun 這樣的 api 服務發送電子郵件(付費)
使用亞馬遜 SES 發送電子郵件
使用sendmail、mail.. 使用您自己的服務器發送電子郵件(需要更多配置)
在許多情況下,當使用共享主機時,郵件服務器已經配置並可用,因此您可以使用 php 中的mail
功能發送您的電子郵件,但首先在將其投入生產之前,您需要確保電子郵件沒有發送到垃圾郵件文件夾,如果是這樣,請使用 authsmtp 因為它易於設置(可能需要 PHPMailer)。
所需的過程如下所示:
從前端發送請求(Javascript Ajax 或 HTML)
Javascript Ajax (jQuery)
$.post("/sendmail", { to: "abcd@gmail.com" })
或者使用html表單
<form action="/sendmail" method="post">
<input type="text" name="to" />
<input type="submit" value="Subscribe" />
</form>
在您的 php 后端使用mail
可能需要在您的服務器上安裝 smtp/sendmail通常是共享主機功能的情況:
$to = $_POST["to"];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, "SUBJECT", "CONTENT OF THE EMAIL");
}
在 PHPMailer 中使用 authsmtp 服務
date_default_timezone_set('Etc/UTC');
require '../PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = 0;
$mail->Debugoutput = 'html';
$mail->Host = "mail.authsmtp.com";
$mail->Port = 2525;
$mail->SMTPAuth = true;
$mail->SMTPAutoTLS = false;
$mail->SMTPSecure = ''; // To enable TLS/SSL encryption change to 'tls'
$mail->AuthType = "CRAM-MD5";
$mail->Username = "USERNAME";
$mail->Password = "PASSWORD";
$mail->setFrom('YOU@YOUR-DOMAIN-NAME.COM', 'YOUR NAME');
$mail->addReplyTo('YOU@YOUR-DOMAIN-NAME.COM', 'YOUR NAME');
$mail->addAddress('YOU@YOUR-DOMAIN-NAME.COM', 'YOUR NAME'); //(Send the test to yourself)
$mail->Subject = 'PHPMailer SMTP test';
$mail->isHTML(true);
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if (!$mail->send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.