簡體   English   中英

C#使用1個連接在線程中發送電子郵件

[英]c# Sending emails in threads using 1 connection

我有一個程序,可以將簡歷發送到發布職位的人的電子郵件中,如果他們在其職位中包含了他們的電子郵件。

因此,我發送了一封電子郵件,其中包含他們對工作描述的報價,生成日期等,

因此,每封電子郵件都是唯一的,但是每封電子郵件都與附件上載相同的文件(resume.pdf)。

現在每次發送電子郵件時,我都需要上傳相同的文件(resume.pdf)//我的簡歷

所以這是我的問題:

  1. 我可以發送每封電子郵件並且僅上傳我的PDF簡歷一次嗎?

  2. 現在,我使用這樣的smtp客戶端庫:

    GMailSmtp gmail = new GMailSmtp(new NetworkCredential("username", "password"));

因此,每次發送電子郵件時,我都會創建一個線程來打開一個新連接,這對我來說似乎很耗時。

我想知道是否有一個API或庫來創建1個連接,然后通過隊列發送我想要的所有電子郵件,或創建一個僅用於發送電子郵件的新線程。

是。 如果您使用的是第三方服務器(例如Gmail),則需要在每封電子郵件中上傳簡歷。 但是,在后台有很多簡單的方法可以做到這一點。

玩一會兒,如果您有特定的問題或疑問,請發布您的代碼和特定的問題:

List<string> recipients = new List<string>();
    BackgroundWorker emailer = new BackgroundWorker();
    public void startSending()
    {
        emailer.DoWork += sendEmails;
        emailer.RunWorkerAsync();
    }
    private void sendEmails(object sender, DoWorkEventArgs e)
    {
        string attachmentPath = @"path to your PDF";
        string subject = "Give me a JOB!";
        string bodyHTML = "html or plain text = up to you";
        foreach (string recipient in recipients)
        {
            sendEmail(recipient, subject,bodyHTML,attachmentPath);
        }

    }
    private void sendEmail(string recipientAddress, string subject, string bodyHTML,string pathToAttachmentFile)
    {
        MailMessage mail = new MailMessage();
        SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");
        mail.From = new MailAddress("your_email_address@gmail.com");
        mail.To.Add(recipientAddress);
        mail.Subject = subject;
        mail.Body = bodyHTML;

        System.Net.Mail.Attachment attachment;
        attachment = new System.Net.Mail.Attachment(pathToAttachmentFile);
        mail.Attachments.Add(attachment);

        SmtpServer.Port = 587;
        SmtpServer.Credentials = new System.Net.NetworkCredential("username", "password");
        SmtpServer.EnableSsl = true;

        SmtpServer.Send(mail);

    }

請注意,BackgroundWorker需要對System.ComponentModel的引用。

您可以使用單獨的線程發送電子郵件。 例如,您可以按照Shannon Holsinger的建議進行操作。 您也可以將簡歷上傳到Dropbox或其他任何地方,然后發送鏈接而不是附加文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM