VBScript для отправки электронной почты [дубликат]

Функция:

public float simpleSimilarity(String u, String v) {
    String[] a = u.split(" ");
    String[] b = v.split(" ");

    long correct = 0;
    int minLen = Math.min(a.length, b.length);

    for (int i = 0; i < minLen; i++) {
        String aa = a[i];
        String bb = b[i];
        int minWordLength = Math.min(aa.length(), bb.length());

        for (int j = 0; j < minWordLength; j++) {
            if (aa.charAt(j) == bb.charAt(j)) {
                correct++;
            }
        }
    }

    return (float) (((double) correct) / Math.max(u.length(), v.length()));
}

Тест:

String a = "This is the first string.";

String b = "this is not 1st string!";

// for exact string comparison, use .equals

boolean exact = a.equals(b);

// For similarity check, there are libraries for this
// Here I'll try a simple example I wrote

float similarity = simple_similarity(a,b);
-1
задан Cœur 10 December 2017 в 09:05
поделиться

2 ответа

Синтаксис

для запуска в Windows при использовании wscript:

wscript.exe "C:\path\example.vbs" "your email address" "who your sending it to" "your subject" "your body text & vbCRLF & for new line" "c:\path\attachment"

требуется «", потому что пробелы через порядок и окна отправляются ошибки, если пробелы находятся в пути

dim mailto
dim mailfrom
dim subject
dim body
dim attachment
mailfrom = WScript.Arguments.Item(0)
mailto = WScript.Arguments.Item(1)
subject = WScript.Arguments.Item(2)
body = WScript.Arguments.Item(3)
attachment = WScript.Arguments.Item(4)


Set emailObj      = CreateObject("CDO.Message")
emailObj.From     = mailfrom
emailObj.To       = mailto
emailObj.Subject  = subject
emailObj.TextBody = body

emailObj.AddAttachment attachment

Set emailConfig = emailObj.Configuration

emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mysmtp.com"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")    = 2  
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1  
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")      = true 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")    = "myUsername"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")    = "myPassword"
emailConfig.Fields.Update

emailObj.Send

If err.number = 0 then Msgbox "email sent"
0
ответ дан Matthew Baker 15 August 2018 в 18:59
поделиться

VBScript не имеет встроенных констант, поэтому вам нужно искать константы в браузере объектов VBA (Alt + F11 - F2 в Excel) и использовать номер. В VBScript существует только один тип данных, поэтому ничего не помещайте ничего (например, Dim x as string только Dim x).

В VBScript нет ничего грубого.

Поля будут иметь значения по умолчанию из Outlook Express или Windows Mail.

но не установлены в Windows 10, так как он не имеет ни одной из этих двух программ.

Ниже приведен голый минимум

Set emailObj      = CreateObject("CDO.Message")
emailObj.From     = "dcandy@gmail.com"
emailObj.To       = "dcandy@gmail.com"
emailObj.Subject  = "Test CDO"
emailObj.TextBody = "Test CDO"

emailObj.AddAttachment "c:\windows\win.ini"

Set emailConfig = emailObj.Configuration

emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")    = 2  
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1  
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl")      = true 
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername")    = "Username"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword")    = "Password"
emailConfig.Fields.Update

emailObj.Send

If err.number = 0 then Msgbox "Done"
1
ответ дан user 15 August 2018 в 18:59
поделиться
  • 1
    Я не говорю, что vba грубо, потому что основной язык openoffice - грубый – Matthew Baker 29 February 2016 в 15:58
  • 2
    как отредактировать это для потоковой передачи командной строки, т.е. wscript.exe "C: \ Wherever \ email.vbs & quot; & Quot; при условии & Quot; & Quot; тело & Quot; & Quot; крепление & Quot; что я делаю, электронная почта электронной таблицы каждый раз, когда она обновляется до электронной почты группы, и я хочу автоматизировать процесс, чтобы сэкономить время, как правило, все, что я делаю, - это отправить электронное письмо с темой как «имя файла на сегодняшний день»; и тело "здесь являются текущими обновлениями" и вложение - это файл, обновляемый как изменение имени файла с каждым обновлением, которое мне нужно, чтобы предоставить его сценарию. Я не знаю vbs, которые хорошо все еще учатся, поэтому любая помощь будет высоко оценена – Matthew Baker 29 February 2016 в 16:58
  • 3
Другие вопросы по тегам:

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