Как отправить электронное письмо в случайное время с заранее заданными сообщениями?

Что я хочу:

  • Электронная почта отправляется в случайное время и день.
  • Электронная почта выбирает одно из сообщений, которые я написал в списке, и отправляет его.
  • Если возможно, без моего взаимодействия, чтобы отправить письмо после того, как я настроил его.
  • Re-встречающийся.

Есть ли какой-нибудь инструмент или приложение, которое бы это делало? Outlook отложил доставку, но я не могу рандомизировать его. Я думал о том, чтобы кодировать его сам, используя authotkey или php, но для этого мне нужно было бы либо запустить программу в фоновом режиме, либо мне нужно было бы настроить сервер для запуска файла php в определенные моменты времени.

Любая помощь будет принята с благодарностью.

1 ответ

Примечание. Если бы мне не запретили задавать вопросы, я сначала создал бы свой собственный вопрос, который был бы специфичен для моей ситуации, а затем сам ответил бы на него с помощью моей личной реализации. После этого я бы связал свой ответ с ФП, который он должен немного изменить для своих конкретных потребностей.

У меня была похожая цель несколько недель назад, и я реализовал решение для нее, используя autohotkey и blat. Первый шаг уравнения заключается в том, что вам нужно выяснить, как правильно использовать blat в сочетании с stunnel. Для этого рекомендуется сначала обратиться к этой ссылке.

Что мне конкретно требовалось, так это то, что мне ежедневно отправлялось письмо с вложением в формате pdf. Тело электронной почты должно содержать определенный текст из текстового файла. Оба файла PDF и TXT находятся в отдельном каталоге и исчисляются сотнями. Таким образом, я бы читал разные вещи и ежедневно получал разные вложения в течение года.

После этого я скомпилировал его в exe-файл и использовал программу-график для ежедневной активации. Я не знаю, может ли это быть сделано случайным образом, но я думаю, что вы можете написать свой собственный планировщик задач для этого, используя autohotkey.

Ниже мой код, который вы должны изменить в соответствии с вашими потребностями. Он активирует stunnel, инициализирует blat, а затем отправляет ваши электронные письма. Если подключение к Интернету не найдено, он открывает файлы PDF на моем компьютере без отправки.

global path = "C:\Your_Personal_Directory\Downloads\blat311\full"
SetWorkingDir %path%

global pdf_dir = "\tmp"
global daily_dir = "\temp"
global tirmidhi_dir = "\tirmidhi\txt"
global faqih_dir =  "C:\Your_Personal_Directory\Downloads\Islamic-Books\Faqeehul-Ummat\split"
global thaanwi_dir = "C:\Your_Personal_Directory\Downloads\Islamic-Books\Thaanwi\split"

global pdf = "*.pdf"
global txt = "*.txt"
global docx = "*.docx"
global delim = "\"

global pdf_MaxCount = ComObjCreate("Shell.Application").NameSpace(path . pdf_dir).Items.Count
global tirmidhi_MaxCount = ComObjCreate("Shell.Application").NameSpace(path . tirmidhi_dir).Items.Count
global faqih_MaxCount = ComObjCreate("Shell.Application").NameSpace(faqih_dir).Items.Count
global thaanwi_MaxCount = ComObjCreate("Shell.Application").NameSpace(thaanwi_dir).Items.Count

global max_days = 365
global days := Retrieve_Days()
global custom_days := Retrieve_Days(true)
global ini_file = "daily_email.ini"

acrobat := "C:\Program Files\Adobe\Reader 11.0\Reader\AcroRD32.exe "
stunnel := "C:\Program Files\stunnel\stunnel.exe "

url=www.google.com
internet := true

RunWait, ping.exe %url% -n 1,, hide UseErrorlevel
If Errorlevel
{
    MsgBox, No internet Connection, try again later.
    internet := false
}

Run, %stunnel%,, hide UseErrorlevel
If Errorlevel
{
    MsgBox, Something went wrong with stunnel.
    internet := false
}

Retrieve_Days(custom_year = false) {
    current_date := A_YYYY . A_MM . A_DD
    if !custom_year
        begin_date := A_YYYY . 01 . 01
    else
        begin_date := 2013 . 08 . 17
    EnvSub, current_date, %begin_date%, days 
    If (current_date < 0)
    {
        MsgBox, Current Date yields negative.
        Exit
    }
    return current_date + 1 ; Returns days passed since begin_date
}

Retrieve_File(l_path, sub_dir = "", file_extension_search = "*.*", number = 1) {
    ;Initialize
    FileList = 
    search = %l_path%%sub_dir%\%file_extension_search%

    Loop, %search%
        FileList = %FileList%%A_LoopFileName%`n

    Sort, FileList  ; The R option sorts in reverse order. See Sort for other options.
    Loop, parse, FileList, `n
    {
        if A_LoopField =  ; Ignore the blank item at the end of the list.
            continue
        test = %A_Index%
        if (test = number)
            return l_path . sub_dir . delim . A_LoopField
    }
}

daily := retrieve_file(path, daily_dir, txt, Mod(days, max_days))
pdf_attachment := retrieve_file(path, pdf_dir, pdf, Mod(custom_days, pdf_MaxCount))
tirmidhi := retrieve_file(path, tirmidhi_dir, txt, Mod(custom_days, tirmidhi_MaxCount))
faqih_attachment := retrieve_file(faqih_dir,, pdf, Mod(custom_days, faqih_MaxCount))
thaanwi_attachment := retrieve_file(thaanwi_dir,, pdf, Mod(custom_days, thaanwi_MaxCount))

If internet
{
    runwait blat -install 127.0.0.1 "Your Name <your_email_address@gmail.com>"- - -u your_email_address@gmail.com -pwd Your_Pasword,, hide
    runwait blat %daily% -to your_email_address@gmail.com -subject "Daily Quran Reading" -attach %pdf_attachment%,, hide
    runwait blat %tirmidhi% -to your_email_address@gmail.com -subject "Daily Tirmidhi Reading",, hide
    runwait blat %daily% -to your_email_address@gmail.com -subject "Daily Akaabir Reading: Faqihul-Ummat" -attach %faqih_attachment%,, hide UseErrorlevel
    If Errorlevel
    {
        MsgBox, Something went wrong with faqih_attachment: %faqih_attachment%
        exit
    }

    runwait blat %tirmidhi% -to your_email_address@gmail.com -subject "Daily Akaabir Reading: Thaanwi" -attach %thaanwi_attachment%,, hide UseErrorlevel
    If Errorlevel
    {
        MsgBox, Something went wrong with thaanwi_attachment: %thaanwi_attachment%
        exit
    }

    Run, %stunnel% -exit,, hide UseErrorlevel
    If Errorlevel
    {
        MsgBox, Something went wrong with stunnel.
        exit
    }
}

else
{
    run notepad %daily%
    run notepad %tirmidhi%
    run %acrobat% %pdf_attachment%
    run %acrobat% %faqih_attachment%
    run %acrobat% %thaanwi_attachment%
}
return
Другие вопросы по тегам