Click here to Skip to main content
15,868,016 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
How to send bulk email using javascript by Azure Communication Services

JavaScript
const { EmailClient } = require("@azure/communication-email");

const connectionString = "endpoint=https://callandsms.communication.azure.com/;accesskey=xxxxxxxxxxxxxxxxxxxxxxx";
const client = new EmailClient(connectionString);
const sender = "support@xxxxx.azurecomm.net";
const emailContent = {
  subject: "Send email quick start test- JS sample",
  plainText: "Test Email from JS Send Email Sample Application\n\n This email is part of testing of email communication service. \\n Best wishes",
  html: "<html><head><title>ACS Email as a Service</title></head><body><h1>ACS Email as a Service - Html body</h1><h2>This email is part of testing of email communication service</h2></body></html>",
};
const toRecipients = {
  to: [
    { email: "xxxxx@yahoo.com", displayName: "xxx" },
    { email: "xxxxx@gmail.com", displayName: "xxx" },
  ],
};

async function main() {
  try {
    const emailMessage = {
      sender: sender,
      content: emailContent,
      recipients: toRecipients,
    };

    const sendResult = await client.send(emailMessage);

    if (sendResult && sendResult.messageId) {
      // check mail status, wait for 5 seconds, check for 60 seconds.
      const messageId = sendResult.messageId;
      if (messageId === null) {
        console.log("Message Id not found.");
        return;
      }

      console.log("Send email success, MessageId :", messageId);

      let counter = 0;
      const statusInterval = setInterval(async function () {
        counter++;
        try {
          const response = await client.getSendStatus(messageId);
          if (response) {
            console.log(`Email status for {${messageId}} : [${response.status}]`);
            if (response.status.toLowerCase() !== "queued" || counter > 12) {
              clearInterval(statusInterval);
            }
          }
        } catch (e) {
          console.log("Error in checking send mail status: ",e);
        }
      }, 5000);
    } else {
      console.error("Something went wrong when trying to send this email: ", sendResult);
    }
  } catch (e) {
    console.log("################### Exception occoured while sending email #####################", e);
  }
}

main();


I want to send emails to many users without the recipients seeing who I'm sending

Is there a solution to send mail individually and import emails from a text or excel file?
I tried a lot and I couldn't on my own

Please help and thank you in advance

What I have tried:

let emailMessage = {sender: sender, content: emailContent};

for(let i = 0; i< toRecipients.to.length; i++) {
  emailMessage.recipients = {to: toRecipients.to[i] }; // single email
  const send result = await client.send(emailMessage);
}
Posted
Comments
Richard MacCutchan 18-Nov-22 12:27pm    
If you place all the recipient addresses in the "Bcc" field they will only see their own address in the received message. Put your own address only in the "To" field.
abidi abdo 18-Nov-22 13:04pm    
Unfortunately, it didn't work
I tried bcc and it didn't work
Richard MacCutchan 18-Nov-22 14:18pm    
Sorry, you cannot just say, "it didn't work", and expect us to guess what your code did and exactly what happened.
Afzaal Ahmad Zeeshan 18-Nov-22 13:38pm    
You can explore the Application To Person sending feature (volume email sending).

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900