Как я посылаю электронную почту на свой счет Gmail с помощью SMTP и Perl?

Используйте map и dictionary - сначала создайте dict по новым именам в ключах и перечислите в значениях, а затем поменяйте местами друг друга в плоский словарь в понимании dict:

d = {'short':short, 
     'intermediate':inter,
     'long':long,
     'plate':plate,
     'road':road}

d1 = {k: oldk for oldk, oldv in d.items() for k in oldv}
df['Type'] = df['Race'].map(d1)
print (df)
   Race  Start  Mid Race  Total Laps  DRIVER RATING          Type
0     1      5        23         207          105.2         plate
1     2     16         7         325           94.2  intermediate
2     3     10         2         267          106.1  intermediate
3     4      5        11         311           80.0         short
4     5      6         3         200          113.0          long

[1111 ] Если хотите, чтобы все значения, не соответствующие первым 4 категориям, были установлены на road, удалите road из первого словаря и добавьте fillna , чтобы отменить все несоответствующие значения:

d = {'short':short, 
     'intermediate':inter,
     'long':long,
     'plate':plate}

d1 = {k: oldk for oldk, oldv in d.items() for k in oldv}
df['Type'] = df['Race'].map(d1).fillna('road')

Деталь :

print (d1)

{
    4: 'short', 6: 'short',
    8: 'short', 9: 'short',
    11: 'short',    20: 'short',
    24: 'short',    28: 'short',
    30: 'short',    33: 'short',
    35: 'short',    2: 'intermediate',
    3: 'intermediate',  7: 'intermediate',
    12: 'intermediate', 13: 'intermediate',
    17: 'intermediate', 19: 'intermediate',
    25: 'intermediate', 27: 'intermediate',
    32: 'intermediate', 34: 'intermediate',
    36: 'intermediate', 5: 'long',
    14: 'long', 15: 'long',
    21: 'long', 23: 'long',
    26: 'long', 1: 'plate',
    10: 'plate',    18: 'plate',
    31: 'plate',    16: 'road',
    22: 'road', 29: 'road'
}

12
задан brian d foy 22 November 2009 в 22:45
поделиться

8 ответов

лично я предложил бы, чтобы Вы использовали мою электронную почту модуля:: Отправьте:: SMTP:: TLS, который работает вполне прилично через TLS Google Mail.

Спасибо.

use Email::Send;

my $mailer = Email::Send->new( {
    mailer => 'SMTP::TLS',
    mailer_args => [
        Host => 'smtp.gmail.com',
        Port => 587,
        User => 'username@gmail.com',
        Password => 'password',
        Hello => 'fayland.org',
    ]
} );

use Email::Simple::Creator; # or other Email::
my $email = Email::Simple->create(
    header => [
        From    => 'username@gmail.com',
        To      => 'to@mail.com',
        Subject => 'Subject title',
    ],
    body => 'Content.',
);

eval { $mailer->send($email) };
die "Error sending email: $@" if $@;
13
ответ дан 2 December 2019 в 06:27
поделиться

Согласно комментарию, не ясно, хотите ли Вы послать электронное письмо через SMTP Google или просто послать электронное письмо в целом (возможно, в Вашу учетную запись Gmail). Необходимо проверить электронную почту:: Отправьте и возможно электронная почта:: Отправьте:: Gmail.

С другой стороны, если то, что Вы действительно спрашиваете, - то, как делают я перемещаю электронную почту из куда-нибудь, которая не является Gmail к Gmail, мне очень везло с IMAP с помощью Почты:: Поле и Почта:: Поле:: IMAP4:: бэкенд SSL. Вы видите пример использования здесь.

6
ответ дан 2 December 2019 в 06:27
поделиться

Другая возможность, на которую Вы могли бы хотеть посмотреть, использует электронную почту:: Отправьте:: модуль Gmail от CPAN. Это позволит Вам посылать электронное письмо от своей учетной записи Gmail до любой учетной записи (например, себе)

1
ответ дан 2 December 2019 в 06:27
поделиться

Я всегда использовал и вез очень с Почтой:: Отправитель.

2
ответ дан 2 December 2019 в 06:27
поделиться

Существуют muliple модули SMTP на CPAN, например, Сеть:: ESMTP. Кроме того, sendmail очень, вероятно, использует SMTP для общения с почтовыми серверами, поэтому какова настоящая причина для того, чтобы не желать использовать его?

1
ответ дан 2 December 2019 в 06:27
поделиться

Если Вы не знакомы с CPAN (Всесторонняя Сеть Архива Perl), я рекомендую Вам отметить тот сайт. Это содержит третье лицо (главным образом хорошо протестированный) библиотеки.

Пример, показывающий, как послать электронные письма с помощью жемчуга: http://www.perlfect.com/articles/sendmail.shtml

0
ответ дан 2 December 2019 в 06:27
поделиться

Я, оказывается, использую MIME::Lite, который является оберткой вокруг Net::SMTP упростить процесс создания почтовых объектов, файловых вложений и отправки полезной нагрузки.

Если Вы не знакомы с установкой модулей, проверьте:

В Windows используйте диспетчер пакетов ActiveState Perl (в меню "Пуск")

На Unix используйте CPAN: $ sudo cpan Module::Name

На размещенных учетных записях Unix: Как я могу установить модуль CPAN в локальный каталог?

0
ответ дан 2 December 2019 в 06:27
поделиться

Если вам просто не нравится sendmail, другой вариант - использовать Postfix , другой MTA.

Вот инструкции, которым я следовал, чтобы установить его на моем компьютере с помощью Gmail: http://souptonuts.sourceforge.net/postfix_tutorial.html

Это также может быть полезно, если вы получаете предупреждение о невозможности проверить сертификат от Thawte Premium Server CA. http://ubuntuforums.org/archive/index.php/t-894355.html

0
ответ дан 2 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

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