Подтвердить что ты не робот

Отправка электронной почты из командной строки через внешний вид без необходимости нажимать

Мне нужно отправить электронную почту через командную строку без каких-либо человеческих взаимодействий для автоматизации.

Я знаю, что мы можем использовать команду mailto, но это создавало бы электронную почту, тему, тело и все, но он не отправил бы его, если я не нажму кнопку "Отправить".

Я читаю онлайн, мы можем использовать blat, но я не могу использовать ничего, кроме Outlook.

Я даже вчера проводил Google целый день, но пока не решил.

Это закрытое сообщение, которое я нашел Ссылка на сообщение SOF.

Любая помощь будет полезна.

just fyi: Я просматриваю некоторые команды telnet, чтобы отправлять электронную почту, пока не добились успеха. команды telnet для отправки электронной почты

4b9b3361

Ответ 1

Вариант 1
Вы мало говорили о своей среде, но, предполагая, что у вас есть это, вы можете использовать PowerShell script; один пример здесь. Суть этого заключается в следующем:

$smtp = New-Object Net.Mail.SmtpClient("ho-ex2010-caht1.exchangeserverpro.net")
$smtp.Send("[email protected]","[email protected]","Test Email","This is a test")

Затем вы можете запустить script из командной строки в соответствии с этот пример:

powershell.exe -noexit c:\scripts\test.ps1

Обратите внимание, что PowerShell 2.0, установленный по умолчанию в Windows 7 и Windows Server 2008R2, содержит более простую команду Send-MailMessage, что делает вещи легче.

Вариант 2
Если вы готовы использовать стороннее программное обеспечение, это строка это средство командной строки SendEmail. Однако это зависит от вашей целевой среды; если вы развертываете пакетный файл на нескольких машинах, это будет требовать включения (но не формальной установки) каждый раз.

Вариант 3
Вы можете управлять Outlook непосредственно из VBA script, который, в свою очередь, вы будете запускать из пакетного файла; это позволит вам отправлять электронное письмо с использованием самого Outlook, который, как представляется, ближе всего к тому, что вы хотите. Для этого есть две части; во-первых, выясните скрипты VBA, необходимые для отправки электронной почты. Есть много примеров для этого онлайн, в том числе от Microsoft здесь. Суть этого:

Sub SendMessage(DisplayMsg As Boolean, Optional AttachmentPath)
    Dim objOutlook As Outlook.Application
    Dim objOutlookMsg As Outlook.MailItem
    Dim objOutlookRecip As Outlook.Recipient
    Dim objOutlookAttach As Outlook.Attachment

    Set objOutlook = CreateObject("Outlook.Application")
    Set objOutlookMsg  = objOutlook.CreateItem(olMailItem)

    With objOutlookMsg
        Set objOutlookRecip = .Recipients.Add("Nancy Davolio")
        objOutlookRecip.Type = olTo
        ' Set the Subject, Body, and Importance of the message.
        .Subject = "This is an Automation test with Microsoft Outlook"
        .Body = "This is the body of the message." &vbCrLf & vbCrLf
        .Importance = olImportanceHigh  'High importance

        If Not IsMissing(AttachmentPath) Then
            Set objOutlookAttach = .Attachments.Add(AttachmentPath)
        End If

        For Each ObjOutlookRecip In .Recipients
            objOutlookRecip.Resolve
        Next

        .Save
        .Send
    End With
    Set objOutlook = Nothing
End Sub

Затем запустите Outlook из командной строки с параметром /autorun в соответствии с этим ответом (измените путь/макронаем при необходимости):

C:\Program Files\Microsoft Office\Office11\Outlook.exe" /autorun macroname

Вариант 4
Вы можете использовать тот же подход, что и вариант 3, но переместите Outlook VBA в PowerShell script (который вы запускаете из командной строки). Пример здесь. Это, вероятно, самое удобное решение, IMO.

Ответ 2

Вы можете использовать cURL и CRON для запуска файлов .php в заданное время.

Вот пример того, что cURL необходимо запустить .php файл:

curl http://localhost/myscript.php

Затем настройте задание CRON для запуска вышеуказанного cURL:

nano -w /var/spool/cron/root
or
crontab -e

Далее следуют:

01 * * * * /usr/bin/curl http://www.yoursite.com/script.php

Для получения дополнительной информации, ознакомьтесь с этой записью: https://www.scalescale.com/tips/nginx/execute-php-scripts-automatically-using-cron-curl/

Подробнее о cURL: Что такое cURL в PHP?

Подробнее о CRON: http://code.tutsplus.com/tutorials/scheduling-tasks-with-cron-jobs--net-8800

Кроме того, если вы хотите узнать о настройке задания CRON на своем размещенном сервере, просто спросите у своего хост-провайдера, и у них может быть GUI для его настройки на c-панели (например, http://godaddy.com или http://1and1.com/)

ПРИМЕЧАНИЕ. Технически я считаю, что вы можете настроить задание CRON для непосредственного запуска файла .php, но я не уверен.

Удачи в работе с PHP: -)