שיעור בונוס
שליחת אימייל במאצעות טריגרד אימייל ( כל שליחת האימיילים של וויקס).
ראשית, היכנסו לדשבורד , שם היכנסו ל Developer tools, ושם היכנסו ל Triggered Emails.
צרו אימייל חדש. אתם יכולים להכניס לתוכו משתנים באמצעות Add Variables שנמצא בצד שמאל. שמרו את הID של האימייל החדש.
כעת פתחו קובץ חדש בBackend בשם Emails.jsw , והכניסו את הקוד המצורף למטה, והחליפו את הערך בtriggeredEmailTemplate לID של האימייל החדש.
import { contacts, triggeredEmails } from 'wix-crm-backend';
export async function sendEmailToContact(email) {
const triggeredEmailTemplate = 'TcjHDGh';
let contactId;
const queryResults = await contacts.queryContacts()
.eq('info.emails.email', email)
.find({suppressAuth: true});
const contactsWithEmail = queryResults.items;
if (contactsWithEmail.length === 1) {
contactId = contactsWithEmail[0]._id;
} else if (contactsWithEmail.length > 1) {
console.log('Found more than 1 contact');
contactId = contactsWithEmail[0]._id;
} else {
console.log('No contacts found');
let contact = await contacts.createContact({
emails: [{tag: "WORK",email: email}]
}, {suppressAuth: true})
console.log(contact);
contactId = contact._id
}
try {
await triggeredEmails.emailContact(triggeredEmailTemplate, contactId, { variables: { EMAIL: email } })
console.log('Email sent to contact');
} catch (error) {
console.error(error);
// Handle the error
}
}
כדי להשתמש בקוד הקודם, נקרא לספרית Backend שייצרנו, ונשתמש בה במקום שבו נבחר בקוד. בדוגמא הזאת ברגע לחיצה על כפתור
import {sendEmailToContact} from 'backend/Emails.jsw'
export function button1_click(event) {
sendEmailToContact($w('#Email').value,$w('#Name').value)
}
שליחת אימייל HTML דרך GMAIL בחינם
ראשית נצטרך להוציא סיסמא לאפליקציה שאנחנו יוצרים.
ניכנס לחשבון גוגל שלנו, לאזור ההגדרות - קישור להגדרות אבטחה של גוגל
נדליק את ה 2 Step Verification
בתחתית העמוד, ניכנס לApp passwords
כעת ניצור סיסמא חדשה לאפליקציה שלנו , נבחר בהגדרות :
שירות - אימייל
מכשיר : אחר - וכאן נכתוב את השם שנרצה לזכור בעתיד.
נקבל סיסמא בעלת 16 אותיות, נעתיק אותה.
עכשיו נלך לדשבורד של האתר שלנו , לDeveolaper Tools
נבחר את הSecrets Managr
ונכניס "סוד" חדש, את הסיסמא שקיבלנו מג'מייל , עם המפתח Gmail
בסרגל שבעורך, ניכנס לCode Packages , ושם נתקין NPM חדש.
לאחר לחיצה על הוספת NPM, נחפש את השם הבא : nodemailer ונתקין אותו.
כעת נפתח קובץ חדש בBackend בשם SendGmail , ונכניס בו את הקוד הבא
import nodemailer from 'nodemailer';
import wixSecretsBackend from 'wix-secrets-backend';
let _hostEmail = "iddofroom@gmail.com";
export function GetGmailSecret() {
return wixSecretsBackend.getSecret("Gmail")
}
export async function sendEmail(sendTo) {
let _hostEmailPassword = await GetGmailSecret()
let subject = "נושא האימייל"
let htmlBody = "<h1>HT ML</h1>"
let smtpTransport = nodemailer.createTransport({
service: "Gmail",
auth: {
user: _hostEmail,
pass: _hostEmailPassword
}
});
let mailOptions = {
to: sendTo,
subject: subject,
html: htmlBody
}
return smtpTransport.sendMail(
mailOptions,
function (error, response) {
if (error) {
console.log("ERRRRRR");
console.log(error);
return "ERRRRRR: \n" + error;
} else {
console.log("Message sent: " , response);
return "Message sent: " + response;
}
});
}