– send gridはメール配信サービス
https://sendgrid.kke.co.jp/

メール送信で課題になりやすいこと
– メールが届かない
– 送信に時間がかかる
– インフラコストがかかる
新規登録します。
あれ、審査いるのか??ちょっと使い勝手が。。

随机应变 ABCD: Always Be Coding and … : хороший
– send gridはメール配信サービス
https://sendgrid.kke.co.jp/

メール送信で課題になりやすいこと
– メールが届かない
– 送信に時間がかかる
– インフラコストがかかる
新規登録します。
あれ、審査いるのか??ちょっと使い勝手が。。

/^([0-9a-zA-Z])+([!#$%&'\"*+\/\=?\.\'^_{}\\|~-][0-9a-zA-Z]+)*@([\w][\w-]*\.)+[\w][\w-]*$/
q{^([0-9a-zA-Z_\-~^\\\\.]+)\@[0-9a-zA-Z_\-~^\\\]+(\.[0-9a-zA-Z_\-~^\\\]+)+$}
preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\?\*\[|\]%'=~^\{\}\/\+!#&\$\._-])*@([a-zA-Z0-9_-])+\.([a-zA-Z0-9\._-]+)+$/", $mailaddress)
あれ。。。
The -V option is used to search for non-matching ones.
[vagrant@localhost ses]$ grep gmail sendmail.cgi
$to = ‘hoge@gmail.org’;
[vagrant@localhost ses]$ grep -v print sendmail.cgi
なるほど、一致しないものね。使い勝手がいいですね。
Allow declaration of constants at compile time.
use constant PI => 4 * atan2(1, 1);
use constant DEBUG => 0;
print "Pi equals ", PI, "...\n" if DEBUG;
use constant{
SEC => 0,
MIN => 1,
HOUR => 2,
MDAY => 3,
MON => 4,
YEAR => 5,
WDAY => 6,
YDAY => 7,
ISDST => 8,
};
use constant WEEKDAYS => qw(
Sunday Monday Tuesday Wednesday Thursday Friday Saturday
);
print "Today is ", (WEEKDAYS)[ (localtime)[WDAY]], ".\";
Dovecot is an IMAP and POP3 server that runs on Unix-like operating systems. It is designed and developed with security system in mind, and is developed and released by Timo Sirainen etal.
#!/usr/bin/perl
require 'getformdata.pl';
# sendmailパス
$sendmail = '/usr/sbin/sendmail';
# フォームデータの取得
%form = plab::getformdata();
# 個々の変数にコピー
$name = $form{'name'};
$from = $form{'from'};
$subject = $form{'subject'};
$message = $form{'message'};
# メールの送信先は固定
$to = 'hoge@gmail.org';
# Fromメールアドレスが空だとエラーになるので、
# 空なら仮に送信先アドレスを入れる
if($from eq ""){
$from = $to;
}
# sendmailを書き込みオープンする
if(! open(MAIL, "|$sendmail -t")){
# sendmailの起動ができませんでした
print "Content-type: text/html\n";
print "\n";
print "メール送信に失敗しました。";
# CGI終了
exit;
}
# チェック
$name =~ s/\r|\n//g;
$from =~ s/\r|\n//g;
$to =~ s/\r|\n//g;
$subject =~ s/\r|\n//g;
# ヒアドキュメントを作る
$mailtext = <<"EOM";
From: $name<$from>
To: <$to>
Subject: $subject
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset="ISO-2022-JP"
$message
EOM
# パイプを通してsendmailにデータを渡す
print MAIL $mailtext;
close MAIL;
print "Content-type: text/html\n";
print "\n";
print "メールを送信しました。ありがとうございました";
exit;
sendmailはperlと関係なくメール送信プログラム
npm install の–saveオプションって何?
-> パッケージをインストールして、package.jsonに書き込む
[vagrant@localhost ses]$ npm -v
6.1.0
[vagrant@localhost ses]$ npm install aws-sdk –save
npm WARN saveError ENOENT: no such file or directory, open ‘/home/vagrant/local/app/test/package.json’
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open ‘/home/vagrant/local/app/test/package.json’
npm WARN test No description
npm WARN test No repository field.
npm WARN test No README data
npm WARN test No license field.
+ aws-sdk@2.487.0
added 39 packages from 85 contributors, removed 30 packages, updated 1 package and audited 52 packages in 30.333s
found 0 vulnerabilities
あれ、package.jsonがないです。
AWS credentialsを設定し、メール送信する
var AWS = require('aws-sdk');
AWS.config.update({region: 'us-east-1'});
var ses = new AWS.SES();
var params = {
Destination: {
ToAddresses: [ 'hoge@example.com' ]
},
Message: {
Body: {
Text: {
Data: 'hello SES',
Charset: 'utf-8'
}
},
Subject: {
Data: 'Hello',
Charset: 'utf-8'
}
},
Source: 'jiro@example.com'
};
ses.sendEmail(params, function(err, data){
if(err) console.log(err, err.stack);
else console.log(data);
});
jsonか。。
コマンドラインで「$_」は一つ前の引数
[vagrant@localhost test]$ echo hoge && echo $_ hoge hoge
$_でhogeを引っ張てきている
mkdirでやると、
[vagrant@localhost test]$ mkdir ses && cd $_
[vagrant@localhost ses]$
おお、なんか素晴らしいですね。
Amazon Simple Email Service (SES) is Amazon’s email sending service.
Weight charge system, no minimum fee required.
Free quota is 62,000 transmissions / month from EC2 and 1,000 receptions / month.
Amazon SES Sandbox
– In order to prevent fraud and to avoid SPAM accreditation from ISPs, new user accounts are placed in a sandbox (environment for verification purposes) and limited in part by behavior.
– Emails can be sent and received only from verified email addresses or verified domains.
– You can send up to 200 messages per day, up to one message per second.
– If you move the account out out of the sandbox, it will work in the unrestricted environment.
– It will take 1 business day to proceed.
Identity
– Case- insensitive combination of domain and email address. (user@example.com and USER@example.com have different identities)
Domain Key Identification Mail(DKIM)
– It is a standard for the ISP to prove that senders have signed e-mail messages so that they are genuine and have not been tampered with by a third party during transmission.



