Создать правило сценария для отправленной почты в Outlook [дубликат]

Вы можете использовать конфигурационную электронную почту с помощью codeigniter, например, используя smtp (простой способ):

$config = Array(
        'protocol' => 'smtp',
        'smtp_host' => 'mail.domain.com', //your smtp host
        'smtp_port' => 26, //default port smtp
        'smtp_user' => 'name@domain.com',
        'smtp_pass' => 'password',
        'mailtype' => 'html',
        'charset' => 'iso-8859-1',
        'wordwrap' => TRUE
);
$message = 'Your msg';
$this->load->library('email', $config);
$this->email->from('name@domain.com', 'Title');
$this->email->to('emaildestination@domain.com');
$this->email->subject('Header');
$this->email->message($message);

if($this->email->send()) 
{
   //conditional true
}

Это работает для меня!

2
задан 0m3r 5 March 2016 в 00:59
поделиться

3 ответа

Свернутый метод, описанный здесь https://msdn.microsoft.com/en-us/library/office/ff865076.aspx , указывает: «Код образца должен быть помещен в модуль класса».

Я предлагаю вам использовать только специальный класс класса ThisOutlookSession. Вы можете поэкспериментировать с собственным модулем класса, но если вы просто хотите, чтобы это сработало, замените весь свой код на ThisOutlookSession.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim prompt As String
prompt = "Are you sure you want to send " & Item.Subject & "?"
If MsgBox(prompt, vbYesNo + vbQuestion, "Sample") = vbNo Then
    Cancel = True
    End If
End Sub
1
ответ дан niton 21 August 2018 в 11:13
поделиться
  • 1
    Этот фрагмент кода сам по себе не делает ничего, даже если он запускается вручную. – CocodaMonkey 4 March 2016 в 23:26
  • 2
    Вы не можете запускать код, ожидающий параметр, Item , не передавая параметр. Однако это не главная проблема. Вы перезапустили Outlook перед тестированием? – niton 4 March 2016 в 23:41
  • 3
    Да, но это не имело бы никакого значения, поскольку этот фрагмент кода ничего не должен делать в любом случае. Если вы замените весь код на это, его никогда не назовешь. – CocodaMonkey 4 March 2016 в 23:46
  • 4
    На этом сайте есть много примеров, чтобы продемонстрировать это как стандартное использование ItemSend. stackoverflow.com/questions/23474306/… , stackoverflow.com/questions/28698291/… , stackoverflow.com/questions/32171589/… , stackoverflow.com/questions/2522884/… Осталось только проверить свои настройки безопасности. – niton 5 March 2016 в 00:00
  • 5
    Спасибо за помощь. У меня, должно быть, был какой-то фрагмент кода. Я получил питание и удалил все, что у меня было, включая некоторые другие модули, и теперь он действительно работает, как вы говорите. Не знаю, где я ошибся, но большое спасибо за вашу помощь. – CocodaMonkey 5 March 2016 в 00:41

Так просто. Обратите внимание, что вам нужно изменить outMail.Display на outMail.Display (True), и вы там, полный код:

...
...
...
outMail.Display (True)

On Error Resume Next
bSent = outMail.sent 'This will NOT SEND. Used to get error.
If Err <> 0 Then
    'Email was sent. Put followed actions here.
Else
    'Email was not sent. Put followed actions here.
End If
On Error GoTo 0

Плюсы:

  • Вы получаете то, что хотите
  • Это просто.

Минусы:

  • Excel (или любое другое время выполнения, с которого выполняется этот код) замерзает, пока вы не отмените или отправить электронную почту.
0
ответ дан Erikas 21 August 2018 в 11:13
поделиться

Вместо этого вы можете поместить его прямо в ThisOutlookSession:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    MsgBox "Sent somthing!"
End Sub
0
ответ дан Tim Williams 21 August 2018 в 11:13
поделиться
  • 1
    Это не работает. На самом деле этот код не делает ничего само по себе, даже если он выполняется вручную. – CocodaMonkey 4 March 2016 в 23:23
  • 2
    Как указывает @niton, вы не можете вызывать это вручную, не передавая параметры – Tim Williams 5 March 2016 в 00:05
Другие вопросы по тегам:

Похожие вопросы: