我编写了以下代码,以使用Laravel Controller方法将电子邮件发送到指定的电子邮件地址:
public BigDecimal chudnovskyNumber(int k, MathContext context) {
Callable<BigDecimal> f1 = () -> factorial(6 * k);
Callable<BigDecimal> f2 = () -> factorial(3 * k);
Callable<BigDecimal> f3 = () -> factorial(k);
Callable<BigDecimal> mul1 = () -> BigDecimal.valueOf(545140134).multiply(BigDecimal.valueOf(k));
Callable<BigDecimal> pow1 = () -> BigDecimal.valueOf(-262537412640768000L).pow(k);
Supplier<BigDecimal> f1Supplier = executeCalculation(f1);
Supplier<BigDecimal> f2Supplier = executeCalculation(f2);
Supplier<BigDecimal> f3Supplier = executeCalculation(f3);
Supplier<BigDecimal> m1Supplier = executeCalculation(mul1);
Supplier<BigDecimal> pow1Supplier = executeCalculation(pow1);
Callable<BigDecimal> m2 = () -> f1Supplier.get().multiply(m1Supplier.get());
Callable<BigDecimal> pow2 = () -> f3Supplier.get().pow(3);
Supplier<BigDecimal> m2Supplier = executeCalculation(m2);
Supplier<BigDecimal> pow2Supplier = executeCalculation(pow2);
Callable<BigDecimal> addition1 = () -> m2Supplier.get().add(BigDecimal.valueOf(13591409));
Callable<BigDecimal> m3 = () -> f2Supplier.get().multiply(pow2Supplier.get());
Supplier<BigDecimal> addition1Supplier = executeCalculation(addition1);
Supplier<BigDecimal> m3Supplier = executeCalculation(m3);
Callable<BigDecimal> m4 = () -> m3Supplier.get().multiply(pow1Supplier.get());
Supplier<BigDecimal> m4Supplier = executeCalculation(m4);
Supplier<BigDecimal> resultSupplier = () -> addition1Supplier.get().divide(m4Supplier.get(), context).stripTrailingZeros();
return resultSupplier.get();
}
此外,我还在.env文件中添加了以下内容:
public function sendEmail(Request $request){
$question = $request->get('question');
$phone = $request->get('phone');
$from_email = $request->get('email');
$from_name = $request->get('name');
$to_email = 'XXX';
$to_name = 'XXX';
$data = array('name'=>"Sam Jose", "body" => $question . "\n" . $phone);
Mail::send(array(), $data, function($message) use ($to_name, $to_email, $from_email, $from_name) {
$message->to($to_email, $to_name)
->subject('Vraag | XXX');
$message->from($from_email, $from_name);
});
}
如果我在本地主机上运行,此代码会将邮件发送到指定的地址,如果在子域中运行,则它不会发送电子邮件而不给出任何错误消息。
答案 0 :(得分:0)
可能您的主机上未安装sendmail
。我建议使用MailGun。它是Laravel内置的,可以免费使用。它应该在本地主机或实时服务器上无缝运行。
答案 1 :(得分:0)
位于控制器顶部
use Mail;
在控制器功能中使用此代码发送邮件。mail.welcome是您要发送的邮件正文。
$data=array('body'=>$message,'name'=>'XXXXX');
Mail::send('mail.welcome',$data,function ($message)use ($email,$subject)
{
$message->to($email)->from('XXXXX@gmail.com', 'XXXX')->subject($subject);
});
if(count(Mail::failures()) > 0){
return redirect()->route('mail.view')->with('error','Error in sending mail');
}
else {
return redirect()->route('mail.view')->with('response','Mail Send Successfully');
}
如果您使用gmail发送邮件。请更改.env文件
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=xxxxxxx@gmail.com
MAIL_PASSWORD=xxxxxxxxxxx
MAIL_ENCRYPTION=tls